#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 个板,给出 232^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

我们需要为字母表中的每个字母提供足够的块,以便我们可以拼出所有三个单词,而不管这八个场景中的哪一个发生。

统计

相关

在下列比赛中:

SDFW模拟竞赛