所以为什么第5、8、10测试点不对
2023-11-20 20:24:24
发布于:浙江
45阅读
0回复
0点赞
三个测试点趋势了(doge),大佬帮忙改一改(功德+1145141919810)
#include <iostream>
#include <algorithm>
using namespace std;
struct stu{
    string name;
    long long silv,gold,copp,id,all = 0;
    void input(){
        cin >> name >> gold >> silv >> copp;
        all = gold+silv+copp;
    }
    void res(){
        cout << name << ' ' << all << endl;
    }
}a[1000005];
bool cmp(stu a,stu b){
	if(a.all != b.all){
        return a.all > b.all;
    }
    if(a.gold != b.gold){
        return a.gold > b.gold;
    }
    if(a.silv != b.silv){
    	return a.silv < b.silv;
    }
    return a.id < b.id;
}
int main(){
    long long n;
    cin >> n;
    for(long long i = 0;i < n;i++){
        a[i].input();
        a[i].id = i;
    }
    sort(a,a+n,cmp);
    for(long long i = 0;i < n;i++){
        a[i].res();
    }
    return 0;
}
这里空空如也

有帮助,赞一个