题目链接:https://www.patest.cn/contests/gplt/L2-027

对于在中国大学MOOC(http://www.icourse163.org/)学习“数据结构”课程的学生,想要获得一张合格证书,总评成绩必须达到 60 分及以上,并且有另加福利:总评分在 [G, 100] 区间内者,可以得到 50 元 PAT 代金券;在 [60, G) 区间内者,可以得到 20 元PAT代金券。全国考点通用,一年有效。同时任课老师还会把总评成绩前 K 名的学生列入课程“名人堂”。本题就请你编写程序,帮助老师列出名人堂的学生,并统计一共发出了面值多少元的 PAT 代金券。

输入格式:

输入在第一行给出 3 个整数,分别是 N(不超过 10 000 的正整数,为学生总数)、G(在 (60,100) 区间内的整数,为题面中描述的代金券等级分界线)、K(不超过 100 且不超过 N 的正整数,为进入名人堂的最低名次)。接下来 N 行,每行给出一位学生的账号(长度不超过15位、不带空格的字符串)和总评成绩(区间 [0, 100] 内的整数),其间以空格分隔。题目保证没有重复的账号。

输出格式:

首先在一行中输出发出的 PAT 代金券的总面值。然后按总评成绩非升序输出进入名人堂的学生的名次、账号和成绩,其间以 1 个空格分隔。需要注意的是:成绩相同的学生享有并列的排名,排名并列时,按账号的字母序升序输出。

输入样例:

  1. 10 80 5
  2. cy@zju.edu.cn 78
  3. cy@pat-edu.com 87
  4. 1001@qq.com 65
  5. uh-oh@163.com 96
  6. test@126.com 39
  7. anyone@qq.com 87
  8. zoe@mit.edu 80
  9. jack@ucla.edu 88
  10. bob@cmu.edu 80
  11. ken@163.com 70

输出样例:

  1. 360
  2. 1 uh-oh@163.com 96
  3. 2 jack@ucla.edu 88
  4. 3 anyone@qq.com 87
  5. 3 cy@pat-edu.com 87
  6. 5 bob@cmu.edu 80
  7. 5 zoe@mit.edu 80

注意点:

①当分数一样时,按照账号的字典序升序排列(为此我重载了一下小于号……);

②计算每个人的排名需要注意一下。

AC代码:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int maxn=+;
  4. int n,g,k;
  5. struct Stu{
  6. string name;
  7. int sco;
  8. int gra;
  9. }stu[maxn];
  10. bool operator<(const string &x,const string &y)
  11. {
  12. for(int i=;i<x.length() && i<y.length();i++)
  13. {
  14. if(x[i]<y[i]) return ;
  15. if(x[i]>y[i]) return ;
  16. }
  17. if(x.length() < y.length()) return ;
  18. else return ;
  19. }
  20. bool stuCmp(Stu a,Stu b)
  21. {
  22. if(a.sco==b.sco) return a.name<b.name;
  23. else return a.sco>b.sco;
  24. }
  25. int main()
  26. {
  27. cin>>n>>g>>k;
  28. int sum=;
  29. for(int i=;i<=n;i++)
  30. {
  31. cin>>stu[i].name>>stu[i].sco;
  32. if(stu[i].sco>=) sum+=(stu[i].sco>=g)?:;
  33. }
  34. cout<<sum<<endl;
  35.  
  36. sort(stu+,stu+n+,stuCmp);
  37. stu[].sco=-;
  38. for(int i=;i<=n;i++)
  39. {
  40. if(stu[i].sco==stu[i-].sco) stu[i].gra=stu[i-].gra;
  41. else stu[i].gra=i;
  42.  
  43. if(stu[i].gra<=k) cout<<stu[i].gra<<" "<<stu[i].name<<" "<<stu[i].sco<<endl;
  44. else break;
  45. }
  46. return ;
  47. }

注:

发现这个比赛对于时限卡的不是很紧,所以非常放心大胆地用cin和string和cout~

PAT-GPLT L2-027 - 名人堂与代金券 - [简单模拟]的更多相关文章

  1. PAT天梯赛 L2-027. 名人堂与代金券 【排序】

    题目链接 https://www.patest.cn/contests/gplt/L2-027 思路 在输入的时候 判断分数 是否符合领取代金券条件 如果符合 SUM 就加上对应的代金券价值 然后在对 ...

  2. 2018 L2-027. 名人堂与代金券【结构体排序】

    L2-027. 名人堂与代金券 时间限制 150 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 对于在中国大学MOOC(http://www.i ...

  3. L2-027. 名人堂与代金券

    链接:名人堂与代金券 在比赛中这题只得了2分,赛后发现原来strcmp函数并不是只返回-1,0,1三种,而是返回正数负数0 但是在我的电脑上一般就是返回前三种,只是用后面的三种更稳妥点 都怪我基础不扎 ...

  4. PAT L2-027 名人堂与代金券

    https://pintia.cn/problem-sets/994805046380707840/problems/994805055176163328 对于在中国大学MOOC(http://www ...

  5. L2-3 名人堂与代金券 (25 分)

    #include<cstdio> #include<algorithm> #include<cstring> using namespace std; int N, ...

  6. L2-3 名人堂与代金券

    题解 这题的话,每一个人都要占一个排名,即使排名并列了. 对于最后一个排名来说,即使人数超过了指定的k,也要加入. 代码 #include <bits/stdc++.h> using na ...

  7. 【¥200代金券、iPad等您来拿】 阿里云9大产品免费公测#10月9日-11月6日#

    #10.09-11.06#200元代金券.iPad大奖, 9大产品评测活动! 亲爱的阿里云小伙伴们: 云产品的多样性(更多的云产品)也是让用户深度使用云计算的关键.今年阿里云产品线越来越丰富,小云搜罗 ...

  8. HER COFFEE夜场代金券【1折】_北京美食团购_360团购导航

    HER COFFEE夜场代金券[1折]_北京美食团购_360团购导航 HER COFFEE夜场代金券

  9. WeMall微信商城源码插件代金券部分代码

    WeMall微信商城源码插件Coupon代金券代码是用于商业推广的比较有效的方式,分享了部分比较重要的代码,供技术员学习参考 AdminController.class.php <?php na ...

随机推荐

  1. Python基础教程学习笔记:第一章 基础知识

    Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...

  2. c# windows服务

    参考:https://www.cnblogs.com/knowledgesea/p/3616127.html 序言 前段时间做一个数据迁移项目,刚开始用B/S架构做的项目,但B/S要寄存在IIs中,而 ...

  3. Java实现文件批量重命名

    Windows操作系统可以实现重命名文件操作,却不能实现批量重命名.本实例实现了批量重命名功能,可以将一个文件夹内同一类型的文件按照一定的规则批量重命名.用户可以给出重命名模板,程序可以根据模板对相应 ...

  4. Apache性能优化总结

    1.介绍 首先要了解Apache采用的MPM(Multi -Processing Modules,多道处理模块),MPM是Apache的核心,它的作用是管理网络连接.调度请求.Apache2.0中MP ...

  5. 【代码审计】后台Getshell的两种常规姿势

    0x00 前言 在早些年刚接触web安全的时候,基础套路都是找注入--找后台--找上传点--找数据库备份--Getshell,然而在代码审计的角度,也存在类似的基本操作. 这里结合代码实例介绍白盒Ge ...

  6. MDK972-EK开发板裸调试设置和裸机程序烧写(转)

    硬件平台:MDK972-EK开发板编译调试软件:KEIL uVision4仿真工具:JLINK V7/V8   本例子从串口输出信息,如图:       KEIL uVision4调试设置如图所示: ...

  7. 在iOS中使用icon font

    博文转载至 http://www.cocoachina.com/industry/20131111/7327.html 在开发阿里数据iOS版客户端的时候,由于项目进度很紧,项目里的所有图标都是用最平 ...

  8. g++参数介绍

    转自http://www.cnblogs.com/lidan/archive/2011/05/25/2239517.html [介绍] gcc and g++分别是gnu的c & c++编译器 ...

  9. sublime--package control的配置与插件安装

    自动配置: 准备一个安装好的 sublime text .这里我的是版本3: 1. 快捷键:ctrl + ~:调出控制台,因为我的是版本3,所以在控制台中输入下边这段代码: import urllib ...

  10. 解决:SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间提示问题

    提示信息如下 “/”应用程序中的服务器错误. SqlDateTime 溢出.必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间. 问题现象: 问 ...