为什么第8个点WA?

P1093 [NOIP2007 普及组] 奖学金

RikkaTakanashi @ 2023-04-03 19:49:34

#include <bits/stdc++.h>
using namespace std;

const int maxn=3e2+5;
int n;
struct st{
    int id,a,b,c,sum;
    bool operator<(const st& o){
        if(sum==o.sum){
            if(a==o.a) return id>o.id;
            return a>o.a;
        }
        return sum>o.sum;
    }
}res[maxn];
void input(int i){
    cin >> res[i].a >> res[i].b >> res[i].c;
    res[i].sum=res[i].a+res[i].b+res[i].c;
    res[i].id=i;
}
int main(){
    cin >> n;
    for(int i=1;i<=n;i++) input(i);
    sort(res+1,res+n+1);
    for(int i=1;i<=5;i++){
        cout << res[i].id << " " << res[i].sum << endl;
    }
    return 0;
}

by EmptyAlien @ 2023-04-20 20:08:34

是学号小的人排在前面,不是学号大的,所以第10行应该改成

if(a==o.a) return id<o.id;

这样就能AC了


by RikkaTakanashi @ 2023-05-14 09:26:23

@Blue_whale 谢谢


|