AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

K0034. 法术对决

简单通过率 48% · 提交 159 · 通过 76
排序模拟字符串

在小慕的项目中,他正在组织一场名为「代码对决」的编程挑战赛,每位参赛者会获得一个算法评分。请计算所有参赛者算法评分的,并返回算法评分等于中位数的参赛者姓名列表。如果有多人符合要求,则输出。 中位数的定义如下: - 如果数据的个数是奇数,则中位数是排序后居中位置的那个数。 - 如果数据的个数是偶数,则中位数是排序后中间两个数中较小的那个数。

提示:带虚线的词点一下有通俗解释。

输入描述

第一行包含一个整数 `num`,表示巫师的人数,满足 `1 <= num <= 100`。 接下来的 `num` 行,每行包含两个部分: - `name`(字符串),表示巫师的名字,仅由英文字母和数字组成,长度在 `[1,15]` 之间,且不重复。 - `score`(整数),表示巫师的法术评分,范围为 `[0,100]`。

输出描述

输出分数等于**中位数**的巫师姓名列表,巫师之间以**单个空格**分隔,**按照输入顺序的逆序**排列。

示例

示例 1

输入

5
Mage02 34
Sorcerer01 32
Wizard03 34
Enchanter04 56
Warlock05 79

输出

Wizard03 Mage02

说明:巫师的法术评分排序后为 `[32, 34, 34, 56, 79]`,中位数是 `34`。 评分等于 `34` 的巫师有两人:`Mage02` 和 `Wizard03`,按照输入顺序的逆序排列,输出 `Wizard03 Mage02`。

示例 2

输入

4
Apprentice01 10
Invoker1b 10
Conjurer2a 9
Summoner02 9

输出

Summoner02 Conjurer2a

说明:巫师的法术评分排序后为 `[9, 9, 10, 10]`,中位数是 `9`。 评分等于 `9` 的巫师有两人:`Conjurer2a` 和 `Summoner02`,按照输入顺序的逆序排列,输出 `Summoner02 Conjurer2a`。

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
法术对决 - 中位数示例 输入(5人): Mage02 34 Sorcerer01 32 Wizard03 34 Enchanter04 56 Warlock05 79 排序后: 32 34 34 56 79 中位数 = 34 分数等于中位数的巫师: Mage02 Wizard03 按输入逆序输出: Wizard03 Mage02
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「法术对决」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。