2 条题解

  • 1
    @ 2026-4-4 17:25:56
    #include<bits/stdc++.h>
    #define int long long
    using namespace std;
    struct s1{
    int r,wz,zdl;
    }s[200010];
    int n,k,a,b;
    bool cmp(s1 s2,s1 s3){
    return s2.zdl<s3.zdl;
    }
    bool cmp2(s1 s2,s1 s3){
    return s2.wz<s3.wz;
    }
    signed main(){
    cin>>n>>k;
    for(int i=1;i<=n;i++){
    cin>>s[i].zdl;
    s[i].wz=i;
    }
    sort(s+1,s+1+n,cmp);
    s[1].r=0;
    for(int i=1;i<=n;i++){
    if(s[i].zdl>s[i-1].zdl){
    s[i].r=i-1;
    }else{
    s[i].r=s[i-1].r;
    }
    }
    sort(s+1,s+1+n,cmp2);
    while(k--){
    cin>>a>>b;
    if(s[a].zdl>s[b].zdl){
    s[a].r--;
    }else if(s[a].zdl<s[b].zdl){
    s[b].r--;
    }
    }
    for(int i=1;i<=n;i++){
    cout<<s[i].r<<" ";
    }
    return 0;
    }
    
    

    信息

    ID
    4971
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    26
    已通过
    16
    上传者