1 条题解

  • 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
    标签
    递交数
    7
    已通过
    5
    上传者