0分求调!!!
查看原帖
0分求调!!!
1184067
Liu_Yin_Xuan楼主2025/6/17 14:15
#include<iostream>
#include<algorithm>
using namespace std;
int n;
struct st{
	int c,m,e,cnt,nb,ans;
}num[10015];
bool cmp1(st a,st b){
	if(a.cnt != b.cnt){
		return a.cnt > b.cnt;
	}
    if(a.c + a.m != b.c + b.m){
		return a.c + a.m > b.c + a.m;
	}
    if(max(a.c,a.m) != max(b.c,b.m)){
		return max(a.c,a.m) > max(b.c,b.m);
	}
	return 0;
}
bool cmp2(st a,st b){
    return a.nb < b.nb;
}
int main(){
	int n;
	cin>>n;
	for(int i = 1;i <= n;i++){
		cin>>num[i].c>>num[i].m>>num[i].e;
		num[i].nb = i;
		num[i].cnt = num[i].c + num[i].m + num[i].e; 
	}
	sort(num + 1,num + 1 + n,cmp1);
    num[1].ans = 1;
	for(int i = 2;i <= n;i++){
        if(num[i].cnt == num[i - 1].cnt && num[i].c + num[i].m == num[i - 1].c + num[i - 1].m && max(num[i].c,num[i].m) == max(num[i - 1].c,num[i - 1].m)){
            num[i].ans = num[i - 1].ans;
        }
        else{
            num[i].ans = i;
        }
    }
    sort(num + 1,num + 1 + n,cmp2);
    for(int i = 1;i <= n;i++){
        cout<<num[i].ans<<endl;
    }
	return 0;
}
2025/6/17 14:15
加载中...