社区讨论

30分求助

B3968[GESP202403 五级] 成绩排序参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mhj3m2lg
此快照首次捕获于
2025/11/03 20:10
4 个月前
此快照最后确认于
2025/11/03 20:10
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
int n;
const int maxn = 1e3 + 10;
struct str
{
	int a,b,c;
	int id;
	int list;
	/* data */
}a[maxn];

int max(str a){
	if(a.a > a.b){
		return a.a;
	}else{
		return a.b;
	}
}
bool cmp(str x,str y){
	if(x.a + x.b + x.c != y.a + y.b + y.c){
		return x.a + x.b + x.c > y.a + y.b + y.c;
	}else if(x.a + x.b != y.a + y.b){
		return x.a + x.b > y.a + y.b;
	}else if(max(x) != max(y)){
		return max(x) > max(y);
	}else{
		return true;
	}
}
int main(){
	scanf("%d",&n);
	for(int i = 1;i <= n;i++){
		scanf("%d %d %d",&a[i].a,&a[i].b,&a[i].c);
		a[i].id = i;
	}
	sort(a + 1,a + n + 1,cmp);
	for(int i = 1;i <= n;i++){
		a[a[i].id].list = i;
	}
	for(int i = 1;i <= n;i++){
		printf("%d\n",a[i].list);
	}
	return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...