我的题解虽没有那么简洁,但是看得懂
2025-02-11 15:58:10
发布于:上海
1阅读
0回复
0点赞
#include<iostream>
#include<algorithm>
using namespace std;
struct phb{
string name;
int gold,silver,copper,id,sum;//金牌,银牌,铜牌,初始下标,每个人的奖牌总数
};
bool cmp(phb x,phb y){
if(x.sum==y.sum){
if(x.gold==y.gold){
if(x.silver==y.silver){
return x.id<y.id;
}
else{
return x.silver>y.silver;
}
}
else{
return x.gold>y.gold;
}
}
else{
return x.sum>y.sum;
}
}
int main(){
phb n[100005];
int m;
cin>>m;
for(int i=1;i<=m;i++){
cin>>n[i].name>>n[i].gold>>n[i].silver>>n[i].copper;
n[i].id=i;
n[i].sum=n[i].gold+n[i].silver+n[i].copper;
}
sort(n+1,n+m+1,cmp);
for(int i=1;i<=m;i++){
cout<<n[i].name<<" "<<n[i].sum<<endl;
}
return 0;
}
这里空空如也
有帮助,赞一个