#P1732. Phone numbers
Phone numbers
在当今世界,你经常会遇到很多电话号码,而且它们变得越来越长。你需要记住这样一类号码。一种简单的记忆方法是按照如下图片所示,将字母分配给数字:
1 ij 2 abc 3 def
4 gh 5 kl 6 mn
7 prs 8 tuv 9 wxy
0 oqz
通过这种方式,每个单词或一组单词都可以被赋予一个唯一的数字,所以你可以记住单词而不是电话号码。很明显,如果能够在单词和人本身之间找到某种简单的联系,这会有它独特的魅力。所以你可以知道,你那位下棋的朋友的电话号码 可以被解读为 (白兵),而你最喜欢的老师的电话号码 可以被解读为 (斗牛犬)。
编写一个程序,找到与给定数字以及给定单词列表相对应的最短单词序列(即单词数量尽可能少的序列)。这种对应关系由上面的图片描述。
输入
输入的第一行包含你必须找到其转写的电话号码。这个号码最多由位数字组成。第二行包含字典中单词的总数(最多为个)。其余的每一行包含一个单词,这个单词最多由个英文字母表中的小写字母组成。输入的总大小不超过。
输出
输出的唯一一行包含你的程序找到的最短单词序列。单词之间用单个空格分隔。如果对于输入数据没有解决方案,这一行包含文本 “ ”(无解)。如果有多个具有最少单词数量的解决方案,你可以选择其中任何一个。
输入数据 1
7325189087
5
it
your
reality
real
our
输出数据 1
reality our
来源
CEOI 1999