AlgoMooc
← 返回题库

K0069. 魔法城市的部门排序

中等通过率 48% · 提交 69 · 通过 33
排序模拟字符串哈希表

小慕负责管理一个大型项目,这个项目包含多个子任务,每个子任务都有一个名称和参与人数。小慕需要根据子任务的重要性和名称对它们进行排序,以便合理分配资源和制定计划。 你需要按照以下规则,输出每个子任务的信息: 1. 先按照子任务所属的任务组名称的进行排序,如果任务组名称相同,那么: 2. 先按照子任务的参与人数从高到低排列; 3. 如果参与人数相同,则按照子任务名称的字典序排列; 4. 如果某个任务组的子任务数量不足 5 个,则输出该任务组的所有子任务信息。 所有的子任务信息按任务组名称的字典序进行排序,若任务组名称相同,则按子任务名称的字典序排列。

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

输入描述

- 第一行输入一个整数 `num`,表示数据的行数。 - 接下来 `num` 行,每行包含三个元素,依次表示 `city`、`departmentName` 和 `personNum`。 - `city`:城市名称,字符串,不超过 100 个字符。 - `departmentName`:部门名称,字符串,不超过 100 个字符。 - `personNum`:部门人数,整数,`1 <= personNum <= 100000`。 - `1 <= num <= 10000` - 同城市下的部门必定不同名字。

输出描述

输出格式与输入格式一致,每个城市的部门信息按以下规则排序: - 每个城市的部门信息按部门人数从高到低排序,人数相同则按部门名称字典序排序; - 如果城市的部门不足 5 个,则全部输出; - 所有城市按字典序排列,如果城市名称相同,则按部门名称字典序排序。

示例

示例 1

输入

11
Beastland FireDepartment 100
Beastland WaterDepartment 50
Beastland EarthDepartment 50
Beastland AirDepartment 100
Beastland MagicDepartment 75
Beastland LandDepartment 75
Crestdale ArtDepartment 30
Crestdale HealthDepartment 60
Crestdale EconomyDepartment 50
Crestdale PoliceDepartment 40
Crestdale FireDepartment 90

输出

Beastland AirDepartment 100
Beastland FireDepartment 100
Beastland LandDepartment 75
Beastland MagicDepartment 75
Beastland EarthDepartment 50
Crestdale FireDepartment 90
Crestdale HealthDepartment 60
Crestdale EconomyDepartment 50
Crestdale PoliceDepartment 40
Crestdale ArtDepartment 30

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

看不懂题目?点开图解(训练营专属)

登录后查看题目图解

题目图解为训练营学员专属内容,请先登录。

微信扫码登录还不是训练营学员?了解训练营 →
写完代码点「提交」,将对全部测试用例判题。