AlgoMooc
← 返回题库

K0094. 魔典卷轴的章节献祭统计

简单通过率 92% · 提交 12 · 通过 11
哈希表模拟排序

小慕正在整理一份庞大的项目文档库。多位协作者会陆续向系统提交他们编写的文档章节。一份文档可能被拆成多个章节,分批上传。系统的提交记录会保存所有上传信息,每条记录包含三项内容: `offerings[i] = [collaborator_id, doc_code, chapter_no]` * `collaborator_id`:协作者编号 * `doc_code`:文档代号 * `chapter_no`:章节编号(从 1 开始编号) 一个协作者由二元组 `[collaborator_id, doc_code]` 唯一标识。 小慕需要对记录进行两步处理: 1)去重 若存在完全相同的记录(`collaborator_id`、`doc_code`、`chapter_no` 全相同),只保留一条,其余丢弃。 2)重组 对同一位协作者,仅保留从 `chapter_no = 1` 开始的连续章节:`1, 2, 3, ...` 一旦某个章节缺失,则更大的章节全部丢弃。 最终需要返回某位协作者的标识 `[collaborator_id, doc_code]`,选择规则如下: * 优先选择最多的协作者; * 若有多个协作者并列,选择 `collaborator_id` 最小的; * 若仍并列,选择 `doc_code` 最小的。 用例保证一定存在满足条件的答案。

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

输入描述

第一行:一个整数 `m`,表示记录条数。 接下来 `m` 行:每行三个整数 `mage_id sigil_code verse_no`,表示一条献祭记录。 * `1 <= m <= 1000` * `0 <= mage_id < 2^31` * `0 <= sigil_code <= 1000` * `1 <= verse_no <= 1000`

输出描述

输出两个整数 `mage_id sigil_code`,用空格分隔,表示被选中的抄写师标识。

示例

示例 1

输入

4
11 7 1
22 7 4
22 7 1
22 7 2

输出

22 7

说明:抄写师 `[11, 7]` 重组后仅保留章节 `1`,数量为 `1`。 抄写师 `[22, 7]` 去重后拥有章节 `1,2,4`,重组后保留连续 `1,2`,数量为 `2`。 因此输出 `22 7`。

示例 2

输入

7
11 7 2
33 7 1
11 7 3
33 7 1
44 7 1
33 8 1
33 8 3

输出

33 7

说明:抄写师 `[11, 7]` 没有章节 `1`,重组后保留 `0`。 抄写师 `[33, 7]` 去重后有章节 `1`,重组保留 `1`。 抄写师 `[44, 7]` 重组保留 `1`。 抄写师 `[33, 8]` 有章节 `1,3`,重组只保留 `1`。 后三者保留数量均为 `1`,先选 `mage_id` 最小的 `33`,再选 `sigil_code` 最小的 `7`,因此输出 `33 7`。

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

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

登录后查看题目图解

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

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