研究人员需要阅读专业期刊中的文章,现在文章越来越多,于是很多研究人员都遇到一个问题:如何才能找到和自己所研究的领域相关的文章。现在,有人发明了一种订阅服务,它可以帮助研究人员根据其“兴趣信息”找到他们需要的文章。兴趣信息有很多种形式,其中一种就是看研究人员关心的某些关键字在文章的标题中的距离是否足够近。研究人员们定义好自己所关心的关键字以及它们之间的距离,并将其发送给订阅服务。譬如:“0 rock art”表示订阅者希望找到所有标题中含“rock”和“art”且其间不含其它词(0 个)的文章。通过这个条件,可以同时搜索到“Rock Art of the Maori”和“Pop Art, Rock, and the Art of Hang-glider Maintenance”两篇文章。
你需要编写一个程序,它读入一系列的“兴趣信息”和一系列的文章标题,并确定每一个“兴趣信息”可以匹配到哪些文章。对于这个程序,词与词之间以空格、换行或标点符号分隔。
Input
在输入中会包含不超过 50 条“兴趣信息”和不超过 250 条文章标题。每条兴趣信息和文章标题都会编号(从 1 开始),但这个编号并没有明确出现在输入中。
- 每条兴趣信息以字符“P:”开始,它包含一个数字和至少两个小写的关键字。这个数字表示每两个关键字之间至多能出现几个其它的词。
-
每条文章标题都是以“T:”开始,并且包含以“|”终止的一系列字符。在文章标题的中间,不会出现字符“|”。所有的文章标题都在 255 个字符之内,在需要时,它会出现在多行上。输入中所有的行不会超过 80 个字符,且若一行同上一行同属一个标题,则在行首会至少有一个空格。换行符只会出现在两个词之间。
所有的非字母字符都可以忽略,例如“Don't Rock -- the Boat as Metaphor in 1984”可以看作“Dont Rock the Boat as Metaphor in”,而“HP2100X”可以看作“HPX”。输入的最后一行是一个单独的 #。
Output
针对每一个兴趣信息输出一行。这一行上应当有兴趣信息的编号,后面跟随一个“:”,再往后是每一个符合要求的文章标题的编号,编号按照从小到大的顺序排列,两个编号间以一个逗号分开。
Sample input
P: 0 rock art
P: 3 concepts conceptions
P: 1 art rock metaphor concepts
T: Rock Art of the Maori|
T: Jazz and Rock - Art Brubeck and Elvis Presley|
T: Don't Rock --- the Boat as Metaphor in 1984, Concepts
and (Mis)-Conceptions of an Art Historian.|
T: Carved in Rock, The Art and Craft of making promises
believable when your `phone bills have gone
through the roof|
#
Sample output
1: 1,2
2:
3: 1,2,3,4