#P1458. 2024.10.12-秋招-第1题-通讯录合并

2024.10.12-秋招-第1题-通讯录合并

题目内容

你有一个通讯录,这个通讯录里每个联系人都包含姓名和手机号,一个联系人可能有多个手机号。

如果发现两个联系人拥有相同的手机号,我们就认为他们是同一个人。

你的任务就是整理这个通讯录,将具有相同手机号的联系人合并为一个联系人,并返回合并后的通讯录列表。

注意:用例不保证具有相同手机号的联系人姓名肯定是相同的,如果合并的时候发现联系人姓名不同,那么以字典序小的为姓名。

输入描述

第一行表示通讯录的记录数量numnum,值的范围[1,10001, 1000]。

从第二行开始,每一行代表一条联系人记录,每条录包括姓名和若干电话号码,电话号码的个数不超过1010(姓名由英文字母大小写组成,长度在1到10之间,电话号码由数字组成)。

之后的若干条记录代表人的记录(手机号个数111010位数字不重复)。同一条记录里的电话号码用空格隔开,电话号码的长度在[1,101,10]

输出描述

整理后的通讯录列表,其中如果两个联系人被识别为同一个人,则他们的电话号码合并。

输出联系人姓名和手机号码列表按ASCIIASCII码升序排序。

样例1

输入

4 
kaka 10000000000 10000000001 
tata 10000000020 
kaka 10000000000 10000000002 
tata 10000000010

输出

kaka 10000000000 10000000001 10000000002 
tata 10000000010 
tata 10000000020 

说明

在这个通讯录中,第一个kaka和第二个kaka有相同的手机号“10000000000”,因此他们被视为同一个人。

因此kaka一共有三个号码并按ASCII码升级排序结果是10000000000 10000000001 10000000002。

第一个tata和第二个tata没有相同的号码,因此被视作两个人。

样例2

输入

3
kaka 10000000000 10000000001
kaka 10000000001 10000000002
kaka 10000000002 10000000003

输出

kaka 10000000000 10000000001 10000000002 10000000003

说明

在这个通讯录中,第一个kaka和第二个kaka有相同的手机号“10000000001”,第二个kaka和第三个kaka有相同的手机号“10000000002”,因此题目被视为同一个人。

因此kaka一共有四个号码并按ASCII码升级排序结果是10000000000 10000000001 10000000002 10000000003