1015. 德才论 (25)

时间限制
200 ms

内存限制
65536 kB

代码长度限制
8000 B

判题程序
Standard

作者
CHEN, Li

宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”

现给出一批考生的德才分数,请根据司马光的理论给出录取排名。

输入格式:

输入第1行给出3个正整数,分别为:N(<=105),即考生总数;L(>=60),为录取最低分数线,即德分和才分均不低于L的考生才有资格被考虑录取;H(<100),为优先录取线——德分和才分均不低于此线的被定义为“才德全尽”,此类考生按德才总分从高到低排序;才分不到但德分到线的一类考生属于“德胜才”,也按总分排序,但排在第一类考生之后;德才分均低于H,但是德分不低于才分的考生属于“才德兼亡”但尚有“德胜才”者,按总分排序,但排在第二类考生之后;其他达到最低线L的考生也按总分排序,但排在第三类考生之后。

随后N行,每行给出一位考生的信息,包括:准考证号、德分、才分,其中准考证号为8位整数,德才分为区间[0, 100]内的整数。数字间以空格分隔。

输出格式:

输出第1行首先给出达到最低分数线的考生人数M,随后M行,每行按照输入格式输出一位考生的信息,考生按输入中说明的规则从高到低排序。当某类考生中有多人总分相同时,按其德分降序排列;若德分也并列,则按准考证号的升序输出。

输入样例:

14 60 80
10000001 64 90
10000002 90 60
10000011 85 80
10000003 85 80
10000004 80 85
10000005 82 77
10000006 83 76
10000007 90 78
10000008 75 79
10000009 59 90
10000010 88 45
10000012 80 100
10000013 90 99
10000014 66 60

输出样例:

12
10000013 90 99
10000012 80 100
10000003 85 80
10000011 85 80
10000004 80 85
10000007 90 78
10000006 83 76
10000005 82 77
10000002 90 60
10000014 66 60
10000008 75 79
10000001 64 90
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
typedef struct pupil
{int num;int de;int cai;int tot;
}pp;
vector<pp> dc,de,cde,wde;
bool cmp(pp pa,pp pb)
{if(pa.tot>pb.tot)return 1;else if(pa.tot<pb.tot)return 0;else{if(pa.de>pb.de)return 1;else if(pa.de<pb.de)return 0;else{if(pa.num<pb.num)return 1;else return 0;}}
}
int main()
{int N,L,H,M=0;cin>>N>>L>>H;while(N--){pp p;scanf("%d%d%d",&p.num,&p.de,&p.cai);p.tot=p.de+p.cai;if(p.de<L||p.cai<L);else if(p.de>=H&&p.cai>=H){dc.push_back(p);++M;}else if(p.de>=H){de.push_back(p);++M;}else if(p.de>=p.cai){cde.push_back(p);++M;}else{wde.push_back(p);++M;}}sort(dc.begin(),dc.end(),cmp);sort(de.begin(),de.end(),cmp);sort(cde.begin(),cde.end(),cmp);sort(wde.begin(),wde.end(),cmp);printf("%d\n",M);for(vector<pp>::iterator it = dc.begin() ;it !=dc.end() ; it++){pp p=*it;printf("%d %d %d\n",p.num,p.de,p.cai);}for(vector<pp>::iterator it = de.begin() ;it !=de.end() ; it++){pp p=*it;printf("%d %d %d\n",p.num,p.de,p.cai);}for(vector<pp>::iterator it = cde.begin() ;it !=cde.end() ; it++){pp p=*it;printf("%d %d %d\n",p.num,p.de,p.cai);}for(vector<pp>::iterator it = wde.begin() ;it !=wde.end() ; it++){pp p=*it;printf("%d %d %d\n",p.num,p.de,p.cai);}return 0;
}

emmmmm...

被同学拉去打机尽情被虐后(手残+NC,真不适合玩游戏(逃...),还是安静下来打打模拟题

考虑到结构体vector

语法不熟,调试好久程序才能运行,没想到竟然过了。。

晚安

深夜切题——PAT (Basic Level)-1015相关推荐

  1. PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)

    PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)   http://www.patest.cn/contests/pat-b-practise/1025 ...

  2. PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20)

    PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20)  http://www.patest.cn/contests/pat-b-practise/1034 ...

  3. 【题解】PAT (Basic Level) Practice (中文)

    互联网行业的小白,写博客的目的是为了记录自己的学习过程.对自己学习中所犯的错误做一个总结.由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教! PAT Basic Level P ...

  4. PAT basic level 答案+解题思路+难点 (个人刷题记录)

    PAT basic level 使用语言:C++ 仅记录一下自己刷题过程的心得体会 永远保持更新(期待更好的解法) 可能有些题没有(那就是我还没做出来,以后会更的!) 欢迎大家与我讨论交流√ 题目序列 ...

  5. 可优化-PAT (Basic Level) Practice Python解法 1026 程序运行时间(时间进位/四舍五入Tobe解决)

    可优化-PAT (Basic Level) Practice Python解法 1026 程序运行时间(时间进位/四舍五入Tobe解决) c1, c2 = map(int,input().split( ...

  6. 1001 害死人不偿命的(3n+1)猜想 (15分) PAT (Basic Level) Practice (中文)C语言版

    PAT (Basic Level) Practice (中文) 1001 害死人不偿命的(3n+1)猜想 (15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一 ...

  7. 卡拉兹(Callatz)猜想,PAT(Basic Level) Practise NO.1001

    PAT(Basic Level) Practise NO.1001 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半. 这样 ...

  8. PAT (Basic Level) Practice (中文)1095 解码PAT准考证 (25 分)

    PAT (Basic Level) Practice (中文)1095 解码PAT准考证 (25 分) PAT 准考证号由 4 部分组成: 第 1 位是级别,即T代表顶级:A代表甲级:B代表乙级: 第 ...

  9. PAT (Basic Level) Practice (中文)1058 选择题 (20 分)

    PAT (Basic Level) Practice (中文)1058 选择题 (20 分) 文章目录 PAT (Basic Level) Practice (中文)1058 选择题 (20 分) 题 ...

最新文章

  1. kangle php集成环境包,PHP探针-UPUPW环境集成包KANGLE专用版 | bftxjc.com contacts
  2. 仅仅用几行python代码偷偷复制U盘文件
  3. MATLAB从入门到精通:搭建一个 简单的Bp神经网络(附代码)
  4. 新书上架:《Java SE 实践教程》
  5. 在整个数据库中查找包含某关键字的所有存储过程
  6. Object to XML
  7. visual studio 调试 定义debug常量_有趣的阅读 12个提高生产力的Visual Studio调试技巧...
  8. Win7休眠后唤醒出现黑屏的解决办法
  9. Linux查看分区文件系统类型总结
  10. flume消费kafka数据太慢_kafka补充01
  11. 《我们不一样团队》项目需求分析改进
  12. C++输入输出流学习笔记
  13. 元胞自动机python代码_Python实现元胞自动机(康威生命游戏)
  14. powerdesigner、ERstudio、PDManER工具比较
  15. Cousera - Deep Learning - 课程笔记 - Week 5
  16. C++五子棋算法Ai 简单的电脑智能博弈
  17. OSChina 周六乱弹 —— 广州爱情故事
  18. 【视频异常检测-论文阅读】Anomaly Detection in Video via Self-Supervised and Multi-Task Learning
  19. 节假日配置、工作日配置
  20. Ubuntu20.04桌面系统快速上手教程

热门文章

  1. 【转载】软件爱好者必备的优秀软件网站分享收藏
  2. MQTT学习笔记(4)报文分析之PUBLISH
  3. win10能上网显示无法连接服务器,电脑不能联网怎么办 Win10无法连接网络解决方法...
  4. stm32f407zgt6的2.2LCD实例1.2:LCD屏幕程序讲解之LCD驱动底层代码
  5. 计算机编码种类(ASCII/gbk/unicode/utf-8)
  6. mysql enclosed by_MySql csv文件导入导出
  7. 青蛙跳石头java_Java青蛙跳台阶问题的解决思路与代码
  8. Redisson文档
  9. C#chart绘折线图动态添加数据
  10. jsp130ssm妇女联合会管理系统