_QrSn_ @ 2021-10-31 09:00:52
代码(WA第一个点):
#include<bits/stdc++.h>
using namespace std;
int n;
struct man
{
string names;
int chinese,match,english,zong;
} a[1005];
bool cmp(const man &x, const man &y)
{
return x.zong>y.zong;
}
int main()
{
cin>>n;
for(int i=0; i<n; i++)
{
cin>>a[i].names>>a[i].chinese>>a[i].match>>a[i].english;
a[i].zong=a[i].chinese+a[i].match+a[i].english;
}
sort(a,a+n,cmp);
cout<<a[0].names<<" "<<a[0].chinese<<" "<<a[0].match<<" "<<a[0].english;
return 0;
}
下载的样例:
输入:
913
pzztktv 0 0 0
yzcuqky 0 0 0
mbwdk 0 0 0
msmszaa 0 0 0
nvzcy 0 0 0
...(反正分数都是0)
fglue 0 0 0
queudmvq 0 0 0
dmixaexb 0 0 0
eavusoo 0 0 0
vmjlrw 0 0 0
输出:
pzztktv 0 0 0
程序输出:
vqnemsn 0 0 0
为什么会这样,求dalao指点
QAQ
by Lsz_2024111368 @ 2021-10-31 09:12:52
@强人锁男 sort是不稳定排序,会打乱相等元素在数组内的位置
把sort换成stable_sort(稳定)试试?
by _QrSn_ @ 2021-10-31 09:14:43
@天下人间 AC了,谢谢dalao!
by Lsz_2024111368 @ 2021-10-31 09:16:29
@强人锁男 另外建议背几个排序的板子,有时候sort无法解决(比如dijkstra的堆优化)
by moduyilong @ 2021-10-31 09:18:46
@天下人间 但是有STL和pb_ds啊