PAT 1015. 德才论 (25)
宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”
现给出一批考生的德才分数,请根据司马光的理论给出录取排名。
输入格式:
输入第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
主要运用qsort排序。
先把每种情况每类学生加入到不同数组中。在使用排序。
注:用java写会运行超时。
- #include<stdio.h>
- #include<string.h>
- #include<math.h>
- #include<stdlib.h>
- typedef struct stu{
- int long sto;
- int de;
- int cai;
- }Stu;
- int cmp(const void*a,const void*b){
- Stu* c = (Stu*)a;
- Stu* d = (Stu*)b;
- int result = ;
- result = -(c->de+c->cai-d->de-d->cai);
- if(result==){
- result = -(c->de-d->de);
- if(result==){
- result = c->sto-d->sto;
- }
- }
- return result;
- }
- Stu stu1[];
- Stu stu2[];
- Stu stu3[];
- Stu stu4[];
- int main(){
- int n,l,h;
- int st1=,st2=,st3=,st4=;
- scanf("%d %d %d",&n,&h,&l);
- for(int i=;i<n;i++){
- int sto,de,cai;
- scanf("%d %d %d",&sto,&de,&cai);
- Stu stu;
- stu.sto = sto;
- stu.de = de;
- stu.cai = cai;
- if(de>=l&&cai>=l){
- stu1[st1++] = stu;
- }
- if(de>=l&&cai<l&&cai>=h){
- stu2[st2++] = stu;
- }
- if(de<l&&de>=h&&cai<l&&cai>=h&&de>=cai){
- stu3[st3++] = stu;
- }
- if(de<l&&de>=h&&cai>=h&&de<cai){
- stu4[st4++] = stu;
- }
- }
- qsort(stu1,st1,sizeof(stu1[]),cmp);
- qsort(stu2,st2,sizeof(stu2[]),cmp);
- qsort(stu3,st3,sizeof(stu3[]),cmp);
- qsort(stu4,st4,sizeof(stu4[]),cmp);
- printf("%d\n",st1+st2+st3+st4);
- for(int i=;i<st1;i++){
- printf("%d %d %d\n",stu1[i].sto,stu1[i].de,stu1[i].cai);
- }
- for(int i=;i<st2;i++){
- printf("%d %d %d\n",stu2[i].sto,stu2[i].de,stu2[i].cai);
- }
- for(int i=;i<st3;i++){
- printf("%d %d %d\n",stu3[i].sto,stu3[i].de,stu3[i].cai);
- }
- for(int i=;i<st4;i++){
- printf("%d %d %d\n",stu4[i].sto,stu4[i].de,stu4[i].cai);
- }
- }
PAT 1015. 德才论 (25)的更多相关文章
- PAT 1015 德才论 (25)(代码+思路)
1015 德才论 (25)(25 分)提问 宋代史学家司马光在<资治通鉴>中有一段著名的"德才论":"是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子, ...
- PAT 1015. 德才论 (25) JAVA
宋代史学家司马光在<资治通鉴>中有一段著名的"德才论":"是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不得圣人,君子 ...
- PAT乙级 1015. 德才论 (25)
1015. 德才论 (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Li 宋代史学家司马光在<资治通鉴&g ...
- 【PAT】1015 德才论 (25)(25 分)
1015 德才论 (25)(25 分) 宋代史学家司马光在<资治通鉴>中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不得 ...
- pat 乙级 1015. 德才论 (25) c++
http://39.106.25.239 个人网站 欢迎访问 交流 1015. 德才论 (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Sta ...
- PAT乙级:1015 德才论 (25分)
1015 德才论 (25分) 宋代史学家司马光在<资治通鉴>中有一段著名的"德才论":"是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人 ...
- PAT-乙级-1015. 德才论 (25)
1015. 德才论 (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Li 宋代史学家司马光在<资治通鉴&g ...
- PATB 1015. 德才论 (25)
1015. 德才论 (25) 比较函数折腾好久,最后还因为cout,printf的区别而超时,超时是因为cout输出效率低. 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 ...
- PAT (Basic Level) Practise (中文)- 1015. 德才论 (25)
http://www.patest.cn/contests/pat-b-practise/1015 宋代史学家司马光在<资治通鉴>中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡 ...
随机推荐
- 我的Android第一章:Android环境搭建
今天是Android第一天的学习,对于学习任何一门课程时我们都要对该课程要有基本的了解和认识,了解该课程学点什么内容,学了这门知识我门能够做些什么,这也是对于我们这些刚入门的学习人员来说是一个必须要弄 ...
- minix2.0内核组织结构与公用头文件说明
Minix2.0操作系统的源代码由两个目录组成:include/目录和src/目录 include/目录包含了操作系统所有的头文件(即.h文件) src/目录下包含了操作系统所有的源文件(.c或.s文 ...
- 使用AndroidStudio进行NDK开发简单配置
1. 准备工作 在实际写代码之前,首先我们还是需要做一些准备工作: 下载NDK开发包:Android官方下载页面 配置系统环境变量 下载好NDK开发包之后,直接解压到任意目录,然后需要配置一下系统环境 ...
- Learn how to Use UIPageViewController in iOS
下面学习内容来自国外的IOS学习网站:The AppGuruz: UIPageViewController in iOS 也许需要FQ哦 认真做一遍上面入门UIPageController的教程,然 ...
- IntelliJ IDEA 导入新项目以后的简单配置
首先,配置Maven. 然后,配置Git. 选择自己调试要用的默认浏览器. 进行Edit Configurations 配置: 转载请注明出处! http://www.cnblogs.com/libi ...
- RPM方式安装MySQL5.5.48 (Aliyun CentOS 7.0 & 卸载MySQL5.7)
环境是阿里云的CentOS7.0,更新了yum源(更新yum源请参考https://help.aliyun.com/knowledge_detail/5974184.html)之后先是尝试安装了MyS ...
- select接收后台返回值的解决方案
在做页面表单或者条件筛选的时候,如何把select标签的值,在刷新页面后,保持选择的值.下面,将给出两种解决方案: 前提: 前台select标签 name为type : 后台接收type的值,业务完成 ...
- HTTP请求工具类
HTTP请求工具类,适用于微信服务器请求,可以自测 代码; /// <summary> /// HTTP请求工具类 /// </summary> public class Ht ...
- HBase应用开发回顾与总结系列之一:概述HBase设计规范
概述 笔者本人接触研究HBase也有半年之久了,虽说不上深入和系统,但至少算是比较沉迷.作为部门里大数据技术的探路者,笔者还要承担起技术传播的职责,所以在摸索研究的过程中总是不断地进行总结和测试, ...
- jenkins邮件通知功能
第部分:全局设置 第一步:进入jenkins的系统设置 第二步:设置管理员邮件地址: 第三步:下载email-ext插件并填写对应的内容: 第四部:填写邮件通知 第五步:以上就是系统管理里需要填写的全 ...