对于在中国大学MOOC学习“数据结构”课程的学生,想要获得一张合格证书,总评成绩必须达到 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 个空格分隔。需要注意的是:成绩相同的学生享有并列的排名,排名并列时,按账号的字母序升序输出。

输入样例:
10 80 5
cy@zju.edu.cn 78
cy@pat-edu.com 87
1001@qq.com 65
uh-oh@163.com 96
test@126.com 39
anyone@qq.com 87
zoe@mit.edu 80
jack@ucla.edu 88
bob@cmu.edu 80
ken@163.com 70

输出样例:
360
1 uh-oh@163.com 96
2 jack@ucla.edu 88
3 anyone@qq.com 87
3 cy@pat-edu.com 87
5 bob@cmu.edu 80
5 zoe@mit.edu 80

分析:给每个大于60分的学生发20块,如果还有人同时大于G,在发30块。把所有学生生排序后,重新排名。第一个学生为第一名,以后的学生如果分数和前一个学生并列,他的名次和前一个同学名次一样,否则他的名次为下标加一

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
struct peo{string name;int sco;
};
bool cmp(peo a, peo b) {if(a.sco != b.sco) return a.sco > b.sco;return a.name < b.name;
}
int main(){int n, g, k, sum = 0, rank[10001] = {0};cin >> n >> g >> k;vector<peo> v(n);for(int i = 0; i < n; i++) {cin >> v[i].name >> v[i].sco;if(v[i].sco >= 60) sum += 20;if(v[i].sco >= g) sum += 30;}sort(v.begin(), v.end(), cmp);rank[0] = 1;for(int i = 1; i < n; i++) {if(v[i].sco == v[i-1].sco)rank[i] = rank[i-1];elserank[i] = i + 1;}cout << sum << endl;for(int i = 0; rank[i] <= k && i < n; i++)printf("%d %s %d\n", rank[i], v[i].name.c_str(), v[i].sco);return 0;
}

L2-027 名人堂与代金券-PAT团体程序设计天梯赛GPLT相关推荐

  1. L2-005 集合相似度-PAT团体程序设计天梯赛GPLT

    题目来源:团体程序设计天梯赛-练习集 题目地址:L2-005 集合相似度 题目大意 给定 nnn 个集合,然后有 kkk 次询问,每次询问都要求出 Nc/Nt×100%N_c / N_t \times ...

  2. L3-011 直捣黄龙 (30 分)-PAT 团体程序设计天梯赛 GPLT

    本题是一部战争大片 -- 你需要从己方大本营出发,一路攻城略地杀到敌方大本营.首先时间就是生命,所以你必须选择合适的路径,以最快的速度占领敌方大本营.当这样的路径不唯一时,要求选择可以沿途解放最多城镇 ...

  3. [Python] L1-005. 考试座位号-PAT团体程序设计天梯赛GPLT

    L1-005. 考试座位号 每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号 ...

  4. L1-050 倒数第N个字符串-PAT团体程序设计天梯赛GPLT

    给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为 L,从 L 个 a 开始,以 1 为步长递增.例如当 L 为 3 时,序列为 { aaa, aab, aac, . ...

  5. L1-005. 考试座位号-PAT团体程序设计天梯赛GPLT

    每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座 ...

  6. L2-016. 愿天下有情人都是失散多年的兄妹-PAT团体程序设计天梯赛GPLT(广度优先bfs)

    呵呵.大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人.父母.祖父母.曾祖父母.高祖父母)则不可通婚.本题就请你帮助一对有情人判断一下,他们究竟是否可以成婚? 输入格式: 输入 ...

  7. L2-008. 最长对称子串-PAT团体程序设计天梯赛GPLT

    对给定的字符串,本题要求你输出最长对称子串的长度.例如,给定"Is PAT&TAP symmetric?",最长对称子串为"s PAT&TAP s&quo ...

  8. L3-021 神坛 (30 分)-PAT 团体程序设计天梯赛 GPLT

    在古老的迈瑞城,巍然屹立着 n 块神石.长老们商议,选取 3 块神石围成一个神坛.因为神坛的能量强度与它的面积成反比,因此神坛的面积越小越好.特殊地,如果有两块神石坐标相同,或者三块神石共线,神坛的面 ...

  9. L3-020 至多删三个字符 (30 分)-PAT 团体程序设计天梯赛 GPLT

    给定一个全部由小写英文字母组成的字符串,允许你至多删掉其中 3 个字符,结果可能有多少种不同的字符串? 输入格式: 输入在一行中给出全部由小写英文字母组成的.长度在区间 [4, 106] 内的字符串. ...

最新文章

  1. HackerRank:JavaScript 是最知名的编程语言
  2. Firefox 将导入 Windows 根证书,避免与杀毒软件的冲突
  3. 使用python moviepy提取视频中的音频,同时对音频数据进行数据可视化分析
  4. 我的世界服务器皮肤显示插件怎么用,我的世界皮肤和插件安装方法
  5. 手机丢了,支付宝和微信里面的钱该怎么办?
  6. 远程win10系统桌面时提示凭证不工作问题的终极解决办法
  7. 写代码千万别用User这个单词!
  8. SQL:pgsql中时间戳转换为整数
  9. paip.chrome使用ACTIVX 的总结
  10. 《隐秘的角落》:发生在IDC机房的隐秘事件
  11. Android App开发常用尺寸规范
  12. 计算机主板自动重启,我电脑关机后总是自动重启,主板换了
  13. css 背景重复渐变_CSS3重复渐变[CSS3提示]
  14. 汽车座椅测试能力全解析
  15. 三角肌前束(01):直臂前平举
  16. Node.js学习笔记——模块加载机制及npm指令详解
  17. centos内核是linux吗,CentOS各版本的内核版本分别是什么?
  18. 计算机电子工程专业就业前景,就业前景好的4大类专业,电气电子类上榜,有你喜欢的吗?...
  19. 闭关修炼——five——Spring
  20. spring mvc + JSR-303验证框架

热门文章

  1. android真实项目教程(三)——首页初点缀_by_CJJ
  2. C#调用VB进行简繁转换
  3. 添加源代码到你的sdk中
  4. Android 开发所碰到的问题汇总
  5. [WPF]有Focus(), 那Unfocus()呢?
  6. AngularJS 后台交互
  7. redis持久化、内存优化、过期、LRU内存
  8. 设计模式精髓—封装变化
  9. kernel.sem信号量参数调优,以及ipcs信号量队列查询
  10. Word 2007批注及批注者姓名修改技巧