一、题目描述
一个有N个选手参加比赛,选手编号为1~N(3<=N<=100),有M(3<=M<=10)个评委对选手进行打分。打分规则为每个评委对选手打分,最高分10分,最低分1分。
请计算得分最多的3位选手的编号。如果得分相同,则得分高分值最多的选手排名靠前(10分数量相同,则比较9分的数量,以此类推,用例中不会出现多个选手得分完全相同的情况)。
二、输入描述
第一行为半角逗号分割的两个正整数,第一个数字表示M(3<=M<=10)个评委,第二个数字表示N(3<=N<=100)个选手。
第2到M+1行是半角逗号分割的整数序列,表示评委为每个选手的打分,0号下标数字表示1号选手分数,1号下标数字表示2号选手分数,依次类推。
三、输出描述
选手前3名的编号。
注:若输入为异常,输出-1,如M、N、打分不在范围内。
四、测试用例
测试用例1
1、输入
3,3
10,9,8
9,8,7
8,7,6
2、输出
1,2,3
3、说明
评委数 3,选手数 3
得分分别为:
选手1:10,9,8 → 总分 27
选手2:9,8,7 → 总分 24
博客介绍了华为在线开发者(OD)机试中的一道题目,要求计算比赛中得分最多的3位选手编号。博客详细阐述了解题思路,包括输入、输出描述,以及算法实现。通过创建Player类,存储选手编号、总分和打分列表,并实现Comparable接口进行排序。最后展示了Java算法源码及运行效果。
订阅专栏 解锁全文
2822






