题目重述

对于在中国大学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 个空格分隔。需要注意的是:成绩相同的学生享有并列的排名,排名并列时,按账号的字母序升序输出。

输入样例:

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

题解

这道题就是需要注意排名这个点,具体可看我的代码

C++ AC

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
struct node{string id;int score;int paiming;
};
bool judgeStr(string str1,string str2)
{int len = min(str1.size(),str2.size());for(int i=0;i<len;i++){if(str1[i]!=str2[i]){return str1[i]<str2[i];}}return str1.size()>str2.size();
}
//结构体比较
bool cmp(node n1,node n2)
{if(n1.score==n2.score){return judgeStr(n1.id,n2.id);}return n1.score>n2.score;
}
int main()
{int sum=0;node nds[10010];int n,G,k;cin>>n>>G>>k;for(int i=0;i<n;i++){cin>>nds[i].id>>nds[i].score;if(nds[i].score>=60&&nds[i].score<G){sum+=20;}if(nds[i].score>=G){sum+=50;}}cout<<sum<<endl;sort(nds,nds+n,cmp);if(k<=0){return 0;}nds[0].paiming=1;//排名赋值for(int i=1;i<n;i++){if(nds[i].score==nds[i-1].score){nds[i].paiming=nds[i-1].paiming;}else{nds[i].paiming=i+1;}}//输出排名for(int i=0;i<n;i++){if(nds[i].paiming<=k){cout<<nds[i].paiming<<" "<<nds[i].id<<" "<<nds[i].score<<endl;}}return 0;
}

【PTA】名人堂与代金券相关推荐

  1. PTA 名人堂与代金券

    对于在中国大学MOOC(http://www.icourse163.org/ )学习"数据结构"课程的学生,想要获得一张合格证书,总评成绩必须达到 60 分及以上,并且有另加福利: ...

  2. 7-11 名人堂与代金券 (25 分)

    7-11 名人堂与代金券 (25 分) 对于在中国大学MOOC(http://www.icourse163.org/ )学习"数据结构"课程的学生,想要获得一张合格证书,总评成绩必 ...

  3. 【CCCC】L2-027 名人堂与代金券 (25分),模拟水题

    problem L2-027 名人堂与代金券 (25分) 对于在中国大学MOOC(http://www.icourse163.org/ )学习"数据结构"课程的学生,想要获得一张合 ...

  4. PAT-L2-027(名人堂与代金券)(结构体排序)

    题目链接:https://www.patest.cn/contests/gplt/L2-027 L2-027. 名人堂与代金券 时间限制 150 ms 内存限制 65536 kB 代码长度限制 800 ...

  5. L2-027. 名人堂与代金券,结构体排序

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

  6. 天梯赛 L2-027 名人堂与代金券 (25 分)

    L2-027 名人堂与代金券 (25 分) 思路: 大体上就是 vector结合结构体储存学生信息,再跑一下自定义排序, 最后在输出上面卡了一下,索性最后还是解决了输出问题 对于在中国大学MOOC(h ...

  7. 天梯赛:L2-027 名人堂与代金券 (25 分)

    题目详情 - L2-027 名人堂与代金券 (25 分) (pintia.cn) 题解:就简单的用一个sort对结构体排序.重点在于对输出的处理上,可能有多个相同的分数.比如n个人都是一样的分数,这时 ...

  8. PAT 名人堂与代金券(结构体多条件排序)

    1. 题目回顾 1.1 题目背景 对于在中国大学MOOC(http://www.icourse163.org/ )学习"数据结构"课程的学生,想要获得一张合格证书,总评成绩必须达到 ...

  9. L2-027 名人堂与代金券-PAT团体程序设计天梯赛GPLT

    对于在中国大学MOOC学习"数据结构"课程的学生,想要获得一张合格证书,总评成绩必须达到 60 分及以上,并且有另加福利:总评分在 [G, 100] 区间内者,可以得到 50 元 ...

最新文章

  1. PCL使用RANSAC拟合三位平面
  2. 使用 PEAR的Text_CAPTCHA保护Web表单[翻译]
  3. win8 开发之旅(13) --webabcd大师,这事你怎么看? 向webabcd大师致敬。
  4. 【Linux 内核 内存管理】Linux 内核内存布局 ② ( x86_64 架构体系内存分布 | 查看 /proc/meminfo 文件 | /proc/meminfo 重要字段解析 )
  5. 分布式服务下,消息中间件改造
  6. OllyDbg捕捉MFC程序按钮事件
  7. uboot中的mmc命令
  8. java独步寻花,小班语言《江畔独步寻花》
  9. 用mac的python写网络爬虫_在mac下使用python抓取数据
  10. 【算法】平衡二叉树 Avl 树
  11. python写一个完整的小程序_写一个python小程序
  12. saltstack高效运维
  13. 错误及原因:Empty JPEG image (DNL not supported)
  14. JZOJ6734. 【2020.06.18省选模拟】航行
  15. freeradius linux,FreeRadius 安装过程记录
  16. java中文汉字转英文拼音工具类(无需引用外部pom)
  17. java 通配符 删除文件_jQuery removeClass通配符
  18. 【Python问题解决】---- ERROR: Could not install packages due to an OSError: [WinError 2] 系统找不到指定的文件。
  19. 北航c语言程序设计大一期末题库,北航2016C语言|程序设计题七
  20. 读入一幅图像,对图像分别进行高斯低通、巴特沃兹低通、高斯高通和巴特沃兹高通频域滤波,比较其锐化和平滑效果。

热门文章

  1. 爬虫做js逆向分析的思路
  2. 971: 统计利用先序遍历创建的二叉树的深度
  3. 如何在JS中计算扑克牌中的顺子、对子、半顺、豹子、杂六
  4. 【环信IM集成指南】Android 端常见问题整理
  5. 国内最快的jquery cdn
  6. 接口自动化——one
  7. C语言:输入字符并将它们输出
  8. 解决Error: ENOENT: no such file or directory, scandir 安装node-sass报错
  9. 安装MySQL的步骤和方法
  10. 关于作用域和自由变量的理解