华为OD机试-N个选手比赛前三名、比赛(Java 2024 E卷 100分)

题目描述

有 N 个选手参加比赛,编号为 1 到 N(3 <= N <= 100),有 M 个评委对选手进行打分。每个评委对选手的打分范围为 1 到 10 分。请计算得分最多的 3 位选手的编号。如果得分相同,得分高分值最多的选手排名靠前(即比较 10 分的数量,如果相同则比较 9 分的数量,以此类推)。如果输入异常,输出 -1。

输入描述

  • 第一行为两个正整数 M 和 N,表示评委数量和选手数量。
  • 接下来的 M 行,每行是一个长度为 N 的整数数组,表示每个评委对选手的打分。

输出描述

输出得分前 3 名的选手编号。

解题思路

  1. 输入验证:首先检查输入的 M 和 N 是否在有效范围内,以及每个评委的打分是否在 1 到 10 之间。
  2. 计算总分:对于每个选手,计算所有评委打分的总和。
  3. 排序规则:如果两个选手的总分相同,则比较他们的高分数量(10 分、9 分等)。
  4. 输出结果

你可能感兴趣的:(华为OD机试,华为OD,机试,算法,Java,Python,C++,JavaScript)