#U1617DB2. Block Game
Block Game
Farmer John 正试图教他的奶牛阅读,给它们一组 N 个通常用于学龄前儿童的拼写板 (1≤N≤100)。每块板的每一面都有一个单词和一个图像。例如,一侧可能带有单词“cat”和一张猫的图片,而另一侧可能带有单词“dog”以及一张狗的图片。因此,当棋盘放在地上时,会显示 N 个单词。通过翻转一些木板,可以暴露出一组不同的 N 个单词。为了帮助奶牛拼写,Farmer John 想要制作许多木块,每个木块上都印有字母表中的一个字母。他想为每个字母制作足够多的块,这样无论哪一组 N 个单词暴露在朝上的板上,奶牛都可以使用这些块拼出所有这些单词。例如,如果 N=3 并且单词“box”、“cat”和“car”朝上,则奶牛至少需要一个“b”块、一个“o”块、一个“x”块,两个“c”块、两个“a”块、一个“t”块和一个“r”块。
请帮助 Farmer John 确定他需要提供的字母表中每个字母的最小块数,这样无论每个板显示的是哪个面,奶牛都可以拼出所有 N 个可见的单词。
输入格式(文件 blocks.in):
第 1 行包含整数 N。接下来的 N 行每行包含 2 个由空格分隔的单词,这两个单词分别位于棋盘的相对两侧。每个单词是最多 10 个小写字母的字符串。
输出格式(文件 blocks.out):
请输出26行。第一个输出行应该包含一个数字,指定所需的“a”块的副本数。下一行应指定所需的“b”块的数量,依此类推。
样例输入:
3
fox box
dog cat
car bus
样例输出:
2
2
2
1
0
1
1
0
0
0
0
0
0
0
2
0
0
1
1
1
1
0
0
1
0
0
在这个例子中,有 N=3 个板,给出 = 8 组向上的单词的可能性:
fox dog car
fox dog bus
fox cat car
fox cat bus
box dog car
box dog bus
box cat car
box cat bus
我们需要为字母表中的每个字母提供足够的块,以便我们可以拼出所有三个单词,而不管这八个场景中的哪一个发生。
统计
相关
在下列比赛中: