AT_abc031_d.[ABC031D] 語呂合わせ
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
日本有一种将数字与短字符串对应的记忆文化。
对此产生兴趣的高桥君,决定推断出仅由 1 以上 K 以下的数字组成的正整数 v1,v2,⋯,vn 以及对应的字符串 w1,w2,⋯,wn 的组合 (v1,w1),(v2,w2),⋯,(vn,wn) 中,哪个数字对应哪个字符串。
也就是说,想要找出满足以下条件的 K 个字符串 s1,s2,⋯,sK。
- 对于满足 1≦i≦K 的任意整数 i,必须满足 1≦∣si∣≦3。
- 对于满足 1≦i≦N 的任意整数 i,当将整数 vi 按位分解时,得到的数字从上到下依次为 d1,d2,⋯,dl,则将字符串 sd1,sd2,⋯,sdl 按此顺序连接的字符串等于 wi。
请编写程序输出 K 个字符串 s1,s2,⋯,sk。
输入格式
输入通过标准输入以以下格式给出。
K N
v1 w1
v2 w2
⋮
vN wN
- 第 1 行包含用空格分隔的两个整数 K,N。
- 第 2∼N 行,每一行给出关于数字和字符串组合的信息。在每一行中,包含空格分隔的完全由 1∼K 组成的数字和完全由半角小写字母组成的字符串。
翻译来自 @lby_commandBlock。
输出格式
共 K 行。第 i(1≦i≦K) 行输出字符串 si。
若有多种组合,输出任意一个组合即可。
注意输出的末尾要加上换行。
样例解释 1
在这个样例中,通过将 s1= i,s2= ni,s3= mi,s4= yo,s5= go,s6= ro 设定为可以满足题意的 K 个字符串。事实上,
- 当将 v1=356 按位分解时,得到 3,5,6,将 s3=
mi,s5=go,s6=ro按此按此顺序连接的字符串migoro等于 w1。 - 当将 v2=461 按位分解时,得到 4,6,1,将 s4=
yo,s6=ro,s1=i按此按此顺序连接的字符串yoroi等于 w2。 - 当将 v3=2 按位分解时,得到 2,s2=
ni等于 w3。 - 当将 v4=12 按位分解时,得到 1,2,s1=
i,s2=ni按此顺序连接的字符串ini等于 w4。
数据规模与约定
- 对于所有数据,满足 1≦K≦9,1≦N≦50。
- 满足 1∼K 的所有数字在 v1,v2,⋯,vN 中至少出现过一次。
- 满足 s1,s2,⋯,sK 一定存在。
部分分
本题设置了部分分。
- 如果通过了由 K≦3 和 w1 到 wN 的任何字符串组成的数据集 1,将获得 40 分。
输入输出样例
输入#1
6 4 356 migoro 461 yoroi 2 ni 12 ini
输出#1
i ni mi yo go ro
输入#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
输入解题思路,AI测评打分。不知道怎么写?