/** 原帖看不到 重发 洛谷啊洛谷 不求你阻止别的人“围杀”我 但求洛谷你不要自己动手 洛谷 你就不怕脏了手 虽然洛谷 这种事情你可能已经干了很多次 早就脏了手 而且也不Care一个蓝名用户的呐喊 */
chengwei_hust 发表于 2024-10-29 12:40 回复楼主
#include<iostream>
using namespace std;
struct student{
string name;
int n;
int m;
int e;
};
bool cmp(student a,student b){
return (a.n+a.m+a.e)>(b.n+b.m+b.e);
}
int main(){
int n;
cin >> n;
student a[n];
for(int i=0;i<n;i++)
cin >> a[i].name >> a[i].n >> a[i].m >> a[i].e;
sort(a,a+n,cmp);
cout << a[0].name << ' ' << a[0].n << ' ' << a[0].m << ' ' << a[0].e;
}
5 条回复 默认排序
IceKylin 回复于 8 个月前 举报 回复 @chengwei_hust
你好,stable_sort
litangzheng 回复于 8 个月前 举报 回复 @chengwei_hust sort根本不在iostream里面啊,你怎么过编译的。
chengwei_hust 回复于 8 个月前 举报 删除 回复 @litangzheng 我自己本地IDE可能设置了包含一些库头文件,编译能过,我就直接贴出来了,抱歉,应该加上#include
chengwei_hust 回复于 8 个月前 举报 删除 回复 @IceKylin 谢谢你的回复和帮助。sort在小数据时是使用类似插入排序,递归层次较深时又改成使用类似于堆排序,一般情况下使用类似于快速排序。不同的平台和编译器对小数据的宏定义可能不一样,导致了我的机器上能通过这个913条排序数据的测试点,洛谷编译后执行时不一样的结果。已改成stable_sort通过了洛谷测试点。
dwxweishengpu 回复于 7 个月前 举报 回复 sort没稳定性(建议用冒泡)