30分求救
查看原帖
30分求救
1656148
shenlingze楼主2025/6/26 17:34
#include<bits/stdc++.h>
using namespace std;
struct score{
	int c,m,e,totel,cm,maxx,num,r;
}s[20000005];
bool cmp1(score a,score b){
	if(a.totel!=b.totel) return a.totel>b.totel;
	else if(a.cm!=b.cm) return a.cm>b.cm;
	else if(a.maxx!=b.maxx) return a.maxx>b.maxx;
}
bool cmp2(score a,score b){
	return a.num<b.num;
}
int n;
int main(){
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>s[i].c>>s[i].m>>s[i].e;
		s[i].cm=s[i].c+s[i].m;
		s[i].totel=s[i].cm+s[i].e;
		s[i].maxx=max(s[i].c,s[i].m);
		s[i].num=i;
	}
	sort(s,s+n,cmp1);
	for(int i=0;i<n;i++){
		s[i].r=i+1;
		if(i!=0){
			if((s[i].c==s[i-1].c &&s[i].m==s[i-1].m)&&(s[i].e==s[i-1].e)){
                s[i].r=s[i].r-1;
            }
		}
	}
	sort(s,s+n,cmp2);
	for(int i=0;i<n;i++){
		cout<<s[i].r<<endl;
	}
	return 0;
}
2025/6/26 17:34
加载中...