zoukankan      html  css  js  c++  java
  • Day9 打卡acwing.429 奖学金

    某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前 55 名学生发奖学金。

    期末,每个学生都有 33 门课的成绩:语文、数学、英语。

    先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。

    任务:先根据输入的 33 门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名学生的学号和总分。

    注意,在前 55 名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。

    例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分) 是:

    7 279
    5 279
    

    这两行数据的含义是:总分最高的两个同学的学号依次是 77 号、55 号。

    这两名同学的总分都是 279279 (总分等于输入的语文、数学、英语三科成绩之和),但学号为 77 的学生语文成绩更高一些。

    如果你的前两名的输出数据是:

    5 279
    7 279
    

    则按输出错误处理。

    输入格式

    输入文件包含 n+1n+1 行:

    第 11 行为一个正整数 nn,表示该校参加评选的学生人数。

    第 22 到 n+1n+1 行,每行有 33 个用空格隔开的数字,每个数字都在 00 到 100100 之间,第 jj 行的 33 个数字依次表示学号为 j1j−1 的学生的语文、数学、英语的成绩。

    每个学生的学号按照输入顺序编号为 1n1∼n (恰好是输入数据的行号减 11)。

    所给的数据都是正确的,不必检验。

    输出格式

    输出文件共有 55 行,每行是两个用空格隔开的正整数,依次表示前 55 名学生的学号和总分。

    数据范围

    6n3006≤n≤300

    输入样例:

    6
    90 67 80
    87 66 91
    78 89 91
    88 99 77
    67 89 64
    78 89 98
    

    输出样例:

    6 265
    4 264
    3 258
    2 244
    1 237

    这个题是一个多关联排序问题,我们利用结构体来存放每个学生的数据,再通过重载运算符操作来进行按照总分、语文成绩、学号直接关系进行排序。
    #include<iostream>
    #include<algorithm>
    using namespace std;
    
    const int N = 310;
    
    struct person{
        int sum, a, b, c, id;
        bool operator< (const person& s) const{
            if(sum != s.sum)
                return sum > s.sum;
            if(s.a != a)
                return a > s.a;
            return id < s.id;
        }
    }stu[N];
    
    int main()
    {
        int n;
        
        cin >> n;
    
        for (int i = 0; i < n; i++)
        {
            cin >> stu[i].a >> stu[i].b >> stu[i].c;
            stu[i].sum = stu[i].a + stu[i].b + stu[i].c;
            stu[i].id = i + 1;
        }
        
        sort(stu, stu+n);
        for (int i = 0; i < 5; i++)
        {
            cout << stu[i].id << " " << stu[i].sum <<endl;
        }
        
        
        return 0;
    }
  • 相关阅读:
    Codeforces Gym 100571A A. Cursed Query 离线
    codeforces Gym 100500 J. Bye Bye Russia
    codeforces Gym 100500H H. ICPC Quest 水题
    codeforces Gym 100500H A. Potion of Immortality 简单DP
    Codeforces Gym 100500F Problem F. Door Lock 二分
    codeforces Gym 100500C D.Hall of Fame 排序
    spring data jpa 创建方法名进行简单查询
    Spring集成JPA提示Not an managed type
    hibernate配置文件中的catalog属性
    SonarLint插件的安装与使用
  • 原文地址:https://www.cnblogs.com/xiaowangdatie/p/14524524.html
Copyright © 2011-2022 走看看