ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

PAT 1015 德才论

2021-06-21 12:33:09  阅读:180  来源: 互联网

标签:category stus PAT int 德才 de number cai 1015


解题思路:这是一道排序题,我们可以先按照题目要求进行分类,在进行排序。

代码实现:

#include <iostream>
#include <algorithm>
using namespace std;
struct student
{
    int number;
    int de;
    int cai;
    int total;
    int category;
};
bool cmp(student a, student b)
{
    if(a.category != b.category)
        return a.category < b.category;
    if(a.total != b.total)
        return a.total > b.total;
    if(a.de != b.de)
        return a.de > b.de;
    if(a.number != b.number)
        return a.number < b.number;
}
int main()
{
    int n, l, h, k = 0;
    cin >> n >> l >> h;
    student stus[n];
    for(int i = 0; i < n; i++)
    {
        cin >> stus[k].number >> stus[k].de >> stus[k].cai;
        if(stus[k].de < l || stus[k].cai < l)
            continue;
        stus[k].total = stus[k].de + stus[k].cai;
        if(stus[k].de >= h && stus[k].cai >= h)
            stus[k].category = 1;
        else if(stus[k].de >= h && stus[k].cai < h)
            stus[k].category = 2;
        else if(stus[k].de < h && stus[k].cai < h && stus[k].de >= stus[k].cai)
            stus[k].category = 3;
        else
            stus[k].category = 4;
        k++;
    }
    sort(stus,stus + k, cmp);
    cout << k << endl;
    for(int i = 0; i < k; i++)
        cout << stus[i].number << " " << stus[i].de << " " << stus[i].cai << endl;
    return 0;
}
 

标签:category,stus,PAT,int,德才,de,number,cai,1015
来源: https://blog.csdn.net/weixin_59196442/article/details/118022314

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有