欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
WAC639.g排名
g排名
世界上有很多伟大的运动员,很难说在特定运动中谁是世界上最好的运动员,特别是当不同运动员在不同的比赛中取得荣誉时。
下面是一个较为可行的运动员排名系统:
- 确定在比赛中可以获得荣誉积分的有效排名 ,给前 个排名依次设定荣誉积分。例如,对于 ,一个可能的分数分配是第一名 分,第二名 分,第三名 分,排在后面的不得分。
- 由于不同比赛的重要程度可能不同,因此需要为每个比赛设定权重 。运动员在比赛中获得的最终荣誉分数将是步骤 中的分数与该比赛的权重的乘积。例如,我们可能会认为奥运会的权重为 ,那么继续我们前面的例子,奥运会的获胜者将获得 分。
- 由于我们不想仅仅因为某个运动员参加的比赛场次够多就给予他高度的评价,所以我们只计算运动员在所有比赛中获得的前 个最高分数。例如,如果 并且运动员在三个不同的比赛中获得 和 的分数,则仅计算 和 。
给定你每个名次的荣誉分数,所有比赛的权重以及所有比赛的结果,你能对参加比赛的所有运动员进行排名吗?
如果多个运动员具有相同的分数,他们将享有相同的排名并按其姓名的字母顺序列出。
输入格式
第一行包含整数 ,表示共有 组测试数据。
每组数据第一行包含整数 ,意义如题所述。
第二行包含 个整数 ,其中第 个整数为排名第 的选手获得的荣誉分数。
第三行包含整数 ,表示共有 场比赛。
接下来 行,每行表示一次比赛,首先包含一个整数,表示这场比赛的权重 ,然后包含 个字符串,其中第 个字符串表示在这次比赛中获得第 名的运动员的名字。
接下来一行包含一个整数 ,意义如题所述。
输出格式
对于每组测试数据,第一行输出 Case #x:,其中 为组别编号(从 开始)。
然后按排名顺序每行输出一个运动员的排名和运动员的名字,格式为 r:name。
数据范围
,
,
,
,
数据保证运动员名字都由大写字母构成,且长度不超过 。
样例解释
在样例中,BOLT 在他的两场比赛中总共获得了 分,排名第一。
如果所有比赛都被计算在内,GAY 的总得分将达到 ,但由于在这种情况下只计算前 个最高得分比赛,GAY 得分为 并排名第二。
由于 PEIMENG 和 TIANBING 都获得了 分,他们都排名第三。
LARRY 是最后一名,因为他的得分只有 ,所以他排名第五。
样例
1
2
1000 500
6
5 BOLT GAY
4 GAY BOLT
1 GAY TIANBING
1 GAY PEIMENG
1 TIANBING LARRY
1 PEIMENG LARRY
2
Case #1:
1: BOLT
2: GAY
3: PEIMENG
3: TIANBING
5: LARRY
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |