题目描述
【题目描述】
农夫约翰正试图教他的奶牛识字,给它们一套通常用于学龄前儿童(1≤N≤100)的N个拼写板,. 每个拼写板的每一面都有一个单词和一个图像。例如,一方可能有“cat”这个词和一张猫的照片,另一方可能会有“dog”这个词和一只狗的照片。当拼写板放在地上时,因此显示N个单词。通过翻转一些板,可以显示一组不同的N个单词。
为了帮助奶牛拼写,农夫约翰想制作一些木块,每个木块上都印有字母表中的一个字母。他想为每个字母制作足够多的方块,这样无论哪一组N个单词出现在面朝上的木板上,奶牛都能用方块拼出所有这些单词。例如,如果N=3且单词“box”、“cat”和“car”朝上,奶牛至少需要一个“b”块、一个“o”块、一个“x”块、二个“c”块、两个“a”块、一个“t”块和一个“r”块。
请帮助农夫约翰确定他需要提供的字母表中每个字母的最小块数,这样无论每块板显示的是哪一面,奶牛都可以拼写所有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个板,对于一组向上的单词给出了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
我们需要为字母表中的每个字母提供足够的块,以便我们能够拼写所有三个单词,而不管这八种情况中的哪一种。