题解
2026-05-10 12:56:02
发布于:浙江
34阅读
0回复
0点赞
可以用结构体
#include <bits/stdc++.h>
using namespace std;
struct STUDENT{
int c,m,e,cm,d,s,id,num = 0;
}a[10010];
bool cmp1 (STUDENT x,STUDENT y){
if (x.s != y.s) return x.s > y.s;
else if (x.cm != y.cm) return x.cm > y.cm;
else if (x.d != y.d) return x.d > y.d;
else return true;
}
bool cmp2 (STUDENT a,STUDENT b){
return a.id < b.id;
}
int main(){
int n,num2 = 1;
cin >> n;
for (int i = 1;i <= n;i++){
cin >> a[i].c >> a[i].m >> a[i].e;
a[i].cm = a[i].c + a[i].m;
a[i].d = max (a[i].c,a[i].m);
a[i].s = a[i].c + a[i].m + a[i].e;
a[i].id = i;
}
sort (a + 1,a + n + 1,cmp1);
for (int i = 1;i <= n;i++){
if (a[i].s != a[num2].s || a[i].cm != a[num2].cm || a[i].d != a[num2].d){
num2 = i;
}
a[i].num = num2;
}
sort (a + 1,a + n + 1,cmp2);
for (int i = 1;i <= n;i++){
cout << a[i].num << endl;
}
return 0;
}
全部评论 1
第一次发题解!
2026-05-10 来自 浙江
0




有帮助,赞一个