社区讨论

30分求调

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

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@mcaft77x
此快照首次捕获于
2025/06/24 19:23
9 个月前
此快照最后确认于
2025/11/04 06:59
4 个月前
查看原帖
AC AC AC WA WA WA WA WA WA WA
CPP
#include<bits/stdc++.h>
using namespace std;
struct node{
	int CH,EN,MA;
	int sc;
	int MC;
	int MAX;
	int ID;
}arr[10005]; 
bool cmp(node a,node b){
	if(a.sc==b.sc){
		if(a.MC==b.MC){
			return a.MAX>b.MAX;
		}
		return a.MC>b.MC;
	}
	return a.sc>b.sc;
}
int res[100005];
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>arr[i].CH>>arr[i].MA>>arr[i].EN;
        arr[i].sc=arr[i].CH+arr[i].MA+arr[i].EN;
        arr[i].MAX=max(arr[i].MA,arr[i].EN);
        arr[i].MC=arr[i].MA+arr[i].CH;
        arr[i].ID=i;
    }
    sort(arr+1,arr+n+1,cmp);
    res[arr[1].ID]=1;
    int rank=1;
    for(int i=2;i<=n;i++){
        if(arr[i].sc<arr[i-1].sc||arr[i].MC<arr[i-1].MC||arr[i].MAX<arr[i-1].MAX){
            rank=i;
        }
        res[arr[i].ID]=rank;
    }for(int i=1;i<=n;i++) cout<<res[i]<<endl;
	return 0;
} 

回复

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

正在加载回复...