AT1198_100 @ 2020-06-30 13:38:27
这不就是结构体吗
#include<bits/stdc++.h>
using namespace std;
int n;
struct xue{
string name;
int chi;
int eng;
int mat;
int xu;
}a[1000];
bool cmp(xue x,xue y){
if(x.chi+x.mat+x.eng==y.chi+x.mat+x.eng){
return x.xu<y.xu;
}
return x.chi+x.mat+x.eng>y.chi+x.mat+x.eng;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].name>>a[i].chi>>a[i].mat>>a[i].eng;
a[i].xu=i;
}
sort(a+1,a+n+1,cmp);
cout<<a[1].name<<" "<<a[1].chi<<" "<<a[1].mat<<" "<<a[1].eng<<endl;
return 0;
}
然而我用了结构体也只有60分.
深附哲学组织是我们机房的小porn友
by 一只书虫仔 @ 2020-06-30 13:45:42
我没特判照样 A 掉
#include <bits/stdc++.h>
using namespace std;
struct student {
char name[10086];
int Chinese;
int Math;
int English;
};
student stu[10086];
bool cmp (student x, student y) {
return x.Chinese + x.Math + x.English > y.Chinese + y.Math + y.English;
}
int main () {
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++)
scanf("%s%d%d%d", stu[i].name, &stu[i].Chinese, &stu[i].Math, &stu[i].English);
sort(stu + 1, stu + n + 1, cmp);
printf("%s %d %d %d", stu[1].name, stu[1].Chinese, stu[1].Math, stu[1].English);
return 0;
}
by AT1198_100 @ 2020-06-30 13:46:40
@一只书虫仔 我好像在哪里见过你 我试一下
by 一只书虫仔 @ 2020-06-30 13:47:32
@winterzxy ?在哪,如果是讨论区见过那很正常
by Her_Lingxiao @ 2020-06-30 13:49:50
bool cmp(xue x,xue y){
if(x.chi + x.eng + x.mat != y.chi + y.eng + y.mat)
return x.chi + x.eng + x.mat < y.chi + y.eng + y.mat;
else
return x.xu < y.xu;
}
话说我个机房juruo为什么要来debug
by AT1198_100 @ 2020-06-30 13:49:58
@一只书虫仔 想起来了 帖子"咬文嚼字"
by songhongyi @ 2020-06-30 13:52:35
stablesort吧
by _5011_ @ 2020-06-30 14:07:49
草,求助帖说明白啊,刚想说nhml……
by Froggy @ 2020-06-30 14:37:18
@一只书虫仔
sort
不是稳定排序吧
by 一只书虫仔 @ 2020-06-30 14:40:05
@Froggy 啊?那可能跟题目输出第一个有关所以我这个是对的
by devout @ 2020-06-30 14:40:25
@一只书虫仔
如果有多个总分相同的学生,输出靠前的那位。
是不是数据水了啊(