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

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

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

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

输出格式:
输出第一行首先给出达到最低分数线的考生人数 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<stdio.h>
#include<string.h>
#include<stdlib.h>
struct Student
{int name;  int de;int cai;int sum;
}love1[100100],love2[100100],love3[100100],love4[100100],love5[100100]; //love1是总的学生
int comp(const void* a,const void* b)
{struct Student *aa = (struct Student *)a;struct Student *bb = (struct Student *)b;if(aa->sum != bb->sum)return ((bb->sum) - (aa->sum));else if(aa->de != bb->de)return ((bb->de) - (aa->de));elsereturn ((aa->name) - (bb->name));
}
int main()
{int one=0,two=0,three=0,four=0,five=0;int i,j;int N,L,H;scanf("%d%d%d",&N,&L,&H);for(i=0;i<N;i++){scanf("%d%d%d",&love1[i].name,&love1[i].de,&love1[i].cai);love1[i].sum = love1[i].de+love1[i].cai;}for(i=0;i<N;i++){if(love1[i].de>=L && love1[i].cai>=L){one++;if(love1[i].de>=H && love1[i].cai>=H){  love2[two] = love1[i];     two++;        }else if(love1[i].cai<H && love1[i].de>=H){  love3[three] = love1[i];   three++;  }else if(love1[i].de<H && love1[i].cai<H && love1[i].de>=love1[i].cai){   love4[four] = love1[i];        four++;       }else{  love5[five] = love1[i];        five++;       }       }}printf("%d\n",one);qsort(love2,two,sizeof(love2[0]),comp);qsort(love3,three,sizeof(love3[0]),comp);qsort(love4,four,sizeof(love4[0]),comp);qsort(love5,five,sizeof(love5[0]),comp);for(i=0;i<two;i++)printf("%d %d %d\n",love2[i].name,love2[i].de,love2[i].cai);for(i=0;i<three;i++)printf("%d %d %d\n",love3[i].name,love3[i].de,love3[i].cai);for(i=0;i<four;i++)printf("%d %d %d\n",love4[i].name,love4[i].de,love4[i].cai);for(i=0;i<five;i++)printf("%d %d %d\n",love5[i].name,love5[i].de,love5[i].cai);
}

1015 德才论 (25 分)—PAT (Basic Level) Practice (中文)相关推荐

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

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

  2. PTA平台 · PAT(Basic Level) Practice(中文) 题目集

    前  言 ※  PTA是 程序设计类实验辅助教学平台 ,里边包含一些编程题目集以供练习. ※  PAT是 浙江大学计算机程序设计能力考试(Programming Ability Test),分为乙级( ...

  3. PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642

    PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642 题目描述 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下 ...

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

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

  5. PAT 乙级 1015 德才论 (25 分)

    1015 德才论 (25 分) 宋代史学家司马光在<资治通鉴>中有一段著名的"德才论":"是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小 ...

  6. PTA 1015 德才论 (25分) ,满分代码 + 测试点报错解决

    知识点 构造sort的排序函数时,string类型可直接比较大小 面对函数的栈器存储空间有限,当出现栈溢出问题时,可将变量命名为全局变量. 测试点2.3.4错误的原因,第一次误以为是由于数据过大,导致 ...

  7. C++学习之路 | PTA乙级—— 1015 德才论 (25分)(精简)

    1015 德才论 (25分) 宋代史学家司马光在<资治通鉴>中有一段著名的"德才论":"是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人 ...

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

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

  9. PAT (Basic Level) Practice (中文)答案合集

    准备复试专用,目标刷完全部中文题! 1001 害死人不偿命的(3n+1)猜想 (15 分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 ...

  10. PAT (Basic Level) Practice (中文)题目集合

    1001 害死人不偿命的(3n+1)猜想 (15 分) #include<bits/stdc++.h> using namespace std;int n, ans; int main() ...

最新文章

  1. 计算机二级理工类报哪个,计算机二级考哪一科目,毕业后找工作会对科目有要求吗?还是说不管什么科目有证就行了?...
  2. 人脑启发AI设计:让神经网络统一翻译语音和文本
  3. 对html5的了解,HTML5——对HTML5的认识
  4. IOS15仿地铁我的页面
  5. PL/SQL经典练习
  6. SQL Server遗失管理权限账号密码怎么办?
  7. 联邦学习--数据攻击(2)
  8. 利用Lucene.net搭建站内搜索(3)---创建索引
  9. django快捷复习手册
  10. 【前端】创建元素并插入到现有文档
  11. 通达信版弘历软件指标_背离王 通达信副图源码 为弘历软件破释公式
  12. did双重差分法_二重差分法分析(DID)
  13. php发布iis0x80070005,iis 0x80070005 解决方法
  14. 修改网络设备在路由器中显示名称
  15. 六度分隔,邓巴数和幂律如何主宰我们的社交网络
  16. ctf解题--算术题
  17. 高德地图-设置点标注的文本标签
  18. 通用的产品功能设计方法
  19. php ping 域名,怎么利用PHP去ping一个地址_PHP
  20. 基于JAVA林家餐厅自助点餐管理系统计算机毕业设计源码+数据库+lw文档+系统+部署

热门文章

  1. Goland的常用快捷键
  2. 风中的纸屑——阅读MDN中的HTML、CSS谈兼容(PC)
  3. Oracle中的rownum不能使用大于的问题
  4. UIScrollView与分页的联合使用
  5. 【论文解读】ICLR2021 知识建模与信息抽取
  6. 一文超详细讲解文本风格迁移
  7. DeepMind高赞课程:24小时看完深度强化学习最新进展(视频)
  8. 深度学习框架如何优雅的做算子对齐任务?
  9. 深度学习2.0-7.tensorflow的高阶操作之数据统计
  10. torch.max;PyTorch中 tensor.detach() 和 tensor.data 的区别;