#abc031d. [abc031_d]語呂合わせ
[abc031_d]語呂合わせ
问题描述
日本有一种将数字与短字符串对应的发音文化。
高橋君对这个事情很感兴趣,他想从由正整数 , , ..., 和对应的字符串 , , ..., 构成的组合 (, ), (, ), ..., (, ) 中推断出每个数字对应的字符串。
也就是说,我们要找到满足以下条件的 个字符串 , , ..., :
- 对于满足 的任意整数 ,有 。
- 对于满足 的任意整数 ,将整数 按位分解得到数字 , , ..., ,则将字符串 , , ..., 连接起来得到的字符串与 相等。
请编写一个程序输出 个字符串 , , ..., 。
输入
输入数据从标准输入读取。
输入的格式如下所示:
...
- 第一行包含两个整数 和 ,以空格分隔。
- 第二行到第 行包含数字和字符串对的信息。第 行 包含一个整数 和一个只包含小写字母的字符串 ,以空格分隔。
- 到 内的任何数字都将出现在 , , ..., 中的至少一个数字中。
- 提供的输入保证至少存在满足条件的 个字符串 , , ..., 。
部分分
本问题包含部分分。
- 如果 并且从 到 的所有字符串都由
a
,b
,c
组成,则对于数据集 的正确答案将获得 分。 - 如果没有附加约束的数据集 得到正确答案,则将额外获得 分。
输出
输出包含 行。第 行 包含字符串 。
如果满足条件的 个字符串有多个组合,则可以输出其中的任何一个组合。
在输出的末尾添加换行符。
示例
输入示例1
6 4
356 migoro
461 yoroi
2 ni
12 ini
输出示例1
i
ni
mi
yo
go
ro
在此示例中,我们可以将 i
, ni
, mi
, yo
, go
, ro
,从而满足问题的条件。事实上,
- 当将 按位分解时得到数字 , , ,将字符串
mi
,go
,ro
连接起来得到的字符串migoro
与 相等。 - 当将 按位分解时得到数字 , , ,将字符串
yo
,ro
,i
连接起来得到的字符串yoroi
与 相等。 - 当将 按位分解时得到数字 ,字符串
ni
与 相等。 - 当将 按位分解时得到数字 , ,将字符串
i
,ni
连接起来得到的字符串ini
与 相等。
注意,这个示例中的输入不满足数据集 的条件。
输入示例2
3 4
21 aaa
12 aaa
123 aaaaaa
13 aaaa
输出示例2
a
aa
aaa
输入示例3
2 3
12211 abcaaaaabcabc
2121 aaabcaaabc
222221 aaaaaaaaaaabc
输出示例3
abc
aa
输入示例4
2 1
12 abcab
输出示例4
ab
cab