30pts!!!(急!下午考级qaq)
查看原帖
30pts!!!(急!下午考级qaq)
1307445
Littlecowr楼主2025/6/28 10:57
#include <bits/stdc++.h>
using namespace std;
struct students{
    int id,c,m,e,num;
}f[10003];
int n;
bool cmp(students &s1,students &s2){
    if(s1.c+s1.m+s1.e!=s2.c+s2.m+s2.e) return s1.c+s1.m+s1.e>s2.c+s2.m+s2.e;
    if(s1.e!=s2.e) return s1.e<s2.e;
    if(max(s1.c,s1.m)!=max(s2.c,s2.m)) return max(s1.c,s1.m)>max(s2.c,s2.m);
    s2.num=-1;
    return 1;
}
bool _(students s1,students s2){
    return s1.id<s2.id;
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++) cin>>f[i].c>>f[i].m>>f[i].e,f[i].id=i;
    sort(f+1,f+n+1,cmp);
    for(int i=1;i<=n;i++){
        if(!f[i].num) f[i].num=i;
        else f[i].num=f[i-1].num;
    }
    sort(f+1,f+n+1,_);
    for(int i=1;i<=n;i++) cout<<f[i].num<<'\n';
    return 0;
}

闭关闭关闭关!!!

2025/6/28 10:57
加载中...