#595. Moo Language

Moo Language

题目描述

农夫约翰对更好地与奶牛同伴互动很感兴趣,所以他决定学习奶牛语言!

奶牛语言实际上与英语非常相似,但更为简约。单词只有四种类型:名词、及物动词、不及物动词和连词。每两个连续的单词必须用空格隔开。标点符号也只有两种类型:句点和逗号。当一个句点或逗号出现在一个单词后面时,它会直接出现在该单词后面,如果接下来出现另一个单词,则后面跟着一个空格。

句子需要遵循以下格式之一:

*类型1:名词+不及物动词。

*类型2:名词+及物动词+名词。具体来说,及物动词后面必须至少有一个名词,并且除了后面的第一个名词之外,后面的每个名词前面都必须有一个逗号。

如果在两个句子之间加一个连词,就可以把它们连接成一个复合句。由此产生的复句不能与其他句子或其他复句进一步连接。每一个句子(或复合句,如果两个句子连在一起的话)都必须以句号结束。

Farmer John有一个由 NN 个单词,CC 个逗号和 PP 个句号组成的单词库(1PCN1031 \le P,C \le N \le 103)。他可能只使用单词或标点符号的次数与单词库中出现的次数一样多。帮助他输出一系列包含尽可能多的单词的句子。

每个输入文件包含该问题的TT1T1001 \le T \le 100)个子问题。

输入格式

第一行包含 TT ,即子问题数。每个子问题指定如下:第一行由三个整数组成,即 NN , CCPP

下面的 NN 行将由两个字符串组成。第一个字符串是FJ可以使用的单词本身(一个至少有1个、最多10个小写字母的字符串),第二个字符串是以下任意一个:名词、及物动词、不及物动词或连词,表示单词的类型。同一个单词可能在FJ的单词库中出现不止一次,但每次出现时都会有相同的类型。

输出格式

在第一行中,输出尽可能多的单词。在第二行中,输出具有最大可能字数的任意句子序列。任何有效的序列都将被接受。

分级器对空格很敏感,所以请确保不要输出任何多余的空格,尤其是在每行的末尾

3
1 1 1
bessie noun
10 5 4
bessie noun
taught transitive-verb
flew intransitive-verb
elsie noun
farmer noun
john noun
and conjunction
and conjunction
nhoj noun
mooed intransitive-verb
24 5 4
but conjunction
bessie noun
taught transitive-verb
flew intransitive-verb
elsie noun
farmer noun
john noun
and conjunction
and conjunction
nhoj noun
mooed intransitive-verb
bob noun
impressed transitive-verb
cow noun
impressed transitive-verb
leaped intransitive-verb
elsie noun
bella noun
buttercup noun
pushed transitive-verb
mooed intransitive-verb
envy noun
john noun
nhoj noun
0
9
nhoj mooed. farmer taught elsie, bessie and john flew.
23
nhoj mooed. nhoj impressed john, farmer, elsie, bessie and cow impressed bob. bella pushed elsie and buttercup flew. envy mooed but john leaped.

对于第一个测试样例,唯一有效的序列是空序列。对于接下来的两个测试样例中的每一个,都可以使用除一个单词外的单词库中的每个单词来构建一个句子序列。

数据范围

对于测试点2-6:N10N≤10

对于测试点7-11: N100N≤100

对于测试点12-16: N1000N≤1000

对于除以5余数为2的测试点:没有及物动词。

对于除以5余数为3测试点:不存在不及物动词。

对于除以5余数为4的测试点:没有连词。