A294.坏了的排行榜1.0题解:
2026-02-24 11:45:20
发布于:四川
0阅读
0回复
0点赞
A294.坏了的排行榜1.0
#include<bits/stdc++.h>
using namespace std;
struct aox{//定义结构体
string s;
int cnt,a,b,c,sum;
}a[100010];
bool cmp(aox x,aox y){
if(x.sum==y.sum){//按照奖牌总数从高到低排序输出
if(x.a==y.a){//总数相同则按照金牌从高到低排序
if(x.b==y.b){//若金牌相同则按照银牌从高到低排序
return x.cnt < y.cnt;//若银牌相同则按照输入的顺序输出
}else return x.b > y.b;
}else return x.a > y.a;
}else return x.sum > y.sum;
}
int main(){
int n;
cin >> n;
for(int i=1;i<=n;i++){
cin >> a[i].s >> a[i].a >> a[i].b >> a[i].c;//输入
a[i].sum=a[i].a+a[i].b+a[i].c;//储存总数,也可以不存
a[i].cnt=i;//存一下位置
}
sort(a+1,a+1+n,cmp);//排序cmp
for(int i=1;i<=n;i++){
cout << a[i].s << " " << a[i].sum << endl;//输出
}
return 0;
}
这里空空如也






有帮助,赞一个