#2908. 拼写游戏

拼写游戏

题目描述

Farmer John 给他的奶牛一共 N1 <= N <= 100 )个拼写板来教她们阅读,这些拼写板通常是学龄前儿童使用的。每块拼写板的两面都有一个单词和一个图像。例如,一面可能有单词 cat 和一张猫的图片,另一面可能有单词 dog 和一张狗的图片。当拼写板放在地上时,就会显示 N 个单词。通过翻转一些拼写版,就会显示出另一组不同的 N 个单词。

为了帮助奶牛拼写,农夫约翰想制做一些木块,每块木块上都有一个英文字母。对于每个字母,他想要制作足够多木块,这样无论拼写板的哪一组的 N 个单词朝上出现,奶牛都能用这些木块拼出所有这些单词。例如,如果 N = 3 ,单词 **boxcatcar 朝上,奶牛至少需要一个 b 木块、一个 o 木块、一个 x 木块、两个 c 木块、两个 a 木块、一个 t 木块和一个 r 木块。

请帮助 Farmer John 确定每个字母所需要的最少木块数,这样不管拼写板朝上出现的是哪一组单词,奶牛都能用这些木块拼出这 N 个单词。

输入格式

第一行包含整数 N

接下来的 N 行,每行包含两个单词,由一个空格隔开,表示拼写板正反两面的两个单词。每个单词最多由 10 个小写字母组成。

输出格式

输出 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 个拼写板,给出了可能的 2^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

对于每个字母,我们需要足够多的木块,这样我们就可以拼出所有三个单词,而不管拼写板朝上出现的是八组情况中的哪一组单词。