呵呵

P5740 【深基7.例9】最厉害的学生

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

@一只书虫仔

如果有多个总分相同的学生,输出靠前的那位。

是不是数据水了啊(


上一页 | 下一页