```cpp
#include <bits/stdc++.h>
using namespace std;
struct Student{
string name;
int yuwen;
int shuxue;
int yingyu;
bool operator < (Student o){
int sum1 = yingyu + shuxue + yuwen;
int sum2 = o.yuwen+o.yingyu+o.shuxue;
return sum1<sum2;
}
}stu[1020];
int main(){
int N;
cin >> N;
for(int i=0;i<N;i++){
cin >> stu[i].name >> stu[i].yuwen >> stu[i].shuxue >> stu[i].yingyu;
}
sort(stu,stu+N);
cout << stu[N-1].name <<" "<< stu[N-1].yuwen <<" "<< stu[N-1].shuxue <<" "<< stu[N-1].yingyu;
system("pause");
return 0;
}
```
by lingfunny @ 2020-04-18 10:25:07
@[AMIRIOX無暝](/user/320697) 没用过stable_sort,就用sort了
by lingfunny @ 2020-04-18 10:25:39
解决了!!!
by AMIRIOX無暝 @ 2020-04-18 10:28:26
@[lingfunny](/user/280800) 重载运算符要const,我解决了
by AMIRIOX無暝 @ 2020-04-18 10:28:49
@[lingfunny](/user/280800) `stable_sort`稳定快排,这题说如有成绩相等去往前的
这样就好了
```c++
bool operator>(const Student o) const{
int sum1 = yingyu+shuxue+yuwen;
int sum2 = o.yuwen+o.yingyu+o.shuxue;
return sum1>sum2;
}
bool operator<(const Student o) const{
int sum1 = yingyu+shuxue+yuwen;
int sum2 = o.yuwen+o.yingyu+o.shuxue;
return sum1<sum2;
}
```
by AMIRIOX無暝 @ 2020-04-18 10:30:17
@[lingfunny](/user/280800) 谢谢大佬!$stO$
by AMIRIOX無暝 @ 2020-04-18 10:33:04
一般来讲这种爆错几百乃至几千行的都是STL用的有问题。。。
by CreeperLordVader @ 2020-04-18 10:34:35
你加个`system("pause")`是没用的,赶快删掉
by 警策看取 @ 2020-04-18 10:38:24
不谢
```cpp
#include<bits/stdc++.h>
using namespace std;
struct ren{
string a;
int x,y,z,zong;
};
int main()
{
ren k[1000];
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>k[i].a>>k[i].x>>k[i].y>>k[i].z;
k[i].zong=k[i].x+k[i].y+k[i].z;
}
int max=-1;
for(int i=0;i<n;i++){
if(k[i].zong>max)max=k[i].zong;
}
for(int i=0;i<n;i++){
if(max==k[i].zong){
cout<<k[i].a<<" "<<k[i].x<<" "<<k[i].y<<" "<<k[i].z;
break;
}
}
return 0;
}
```
照着理解理解,改一下
by Na2_CuCl4 @ 2020-06-16 21:22:04
stable_sort(stu,stu+N);
建议不要用sort,有些地方识别不了,stable_sort就更算了
用max排序,也许会好一些
by Na2_CuCl4 @ 2020-06-16 21:24:29