#U16B02D. Block Game
Block Game
Description
农夫约翰正在尝试通过给他的牛群一组 块拼字板来教它们识字,这些拼字板通常用于学龄前儿童学习拼写,其中 。每块拼字板的两面都有一个单词和一张图片。例如,一面可能有单词 "cat" 和一张猫的图片,另一面可能有单词 "dog" 和一张狗的图片。当拼字板平放在地上时,会显示 个单词。通过翻转某些拼字板,可以展示另一组 个单词。
为了帮助牛群进行拼写,农夫约翰计划制作一些木制方块,每个方块上刻有一个字母。他希望为每个字母制作足够多的方块,这样无论哪组 个单词出现在朝上的拼字板上,牛群都能够使用这些方块拼写出所有的单词。例如,如果 ,朝上的单词是 "box"、"cat" 和 "car",那么牛群需要至少一个 "b" 方块、一个 "o" 方块、一个 "x" 方块、两个 "c" 方块、两个 "a" 方块、一个 "t" 方块和一个 "r" 方块。
请帮农夫约翰确定他需要为每个字母提供的最小方块数,以便无论拼字板显示哪组单词,牛群都能拼写出所有可见的 个单词。
输入格式(文件 blocks.in):
第 1 行包含整数 。 接下来的 行中,每行包含 2 个由空格分隔的单词,表示拼字板两面的单词。每个单词是最多由 10 个小写字母组成的字符串。
输出格式(文件 blocks.out):
请输出 26 行。第 1 行应包含需要的 'a' 方块的数量。接下来的每行应依次输出 'b' 方块、'c' 方块的数量,直到 'z' 方块的数量。
示例输入:
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
hint
在此示例中,有 块拼字板,共有 种可能的朝上单词组合:
- fox dog car
- fox dog bus
- fox cat car
- fox cat bus
- box dog car
- box dog bus
- box cat car
- box cat bus
我们需要为每个字母准备足够的方块,以便无论哪种组合,牛群都能拼出这三个单词。