一、题目描述
给定一个射击比赛成绩单,包含多个选手若干次射击的成绩分数,请对每个选手按其最高3个分数之和进行降序排名,输出降序排名后的选手ID序列。
条件如下:
- 一个选手可以有多个射击成绩的分数,且次序不固定
- 如果一个选手成绩少于3个,则认为选手的所有成绩无效,排名忽略该选手
- 如果选手的成绩之和相等,则成绩之和相等的选手按照其ID降序排列。
二、输入描述
输入第一行,一个整数N,表示该场比赛总共进行了N次射击,产生N个成绩分数(2<=N<=100);
输入第二行,一个长度为N整数序列,表示参与每次射击的选手ID(0<=ID<=99);
输入第三行,一个长度为N整数序列,表示参与每次射击的选手对应的成绩(0<=成绩<=100)。
三、输出描述
符合题设条件的降序排名后的选手ID序列。
四、测试用例
测试用例1:
1、输入
6
1,2,1,2,1,2
10,20,30,40,50,60
2、输出
2,1
3、说明
选手1的分数:10,30,50 → 和为90
选手2的分数:20,40,60 → 和为120
华为OD机试:射击比赛成绩统计与排名
本博客详细介绍了华为OD机试2023B卷中的一道题目,涉及根据选手射击成绩进行降序排名的问题。内容包括题目描述、输入输出说明、解题思路、Java算法源码及效果展示。通过计算每个选手最高3个成绩的总和,对选手进行降序排名,相同分数则按ID降序排列。
订阅专栏 解锁全文
3460





