P4420 [COCI 2017/2018 #1] Tetris

题目描述

Ivica 是一位激情昂扬的计算机科学家。他最近开始研究他的第一个电脑游戏:流行的俄罗斯方块的克隆版。尽管他还远未完成,但他的程序已支持将下图中显示的 $5$ 种不同的俄罗斯方块图形放在一个矩阵中。在将图形放入俄罗斯方块矩阵之前,允许对它进行任意次 $90$ 度旋转并着色。此外,在当前版本的游戏中,不支持放置会超出矩阵边界或与矩阵中的现有图形重叠的图形。 ![](https://cdn.luogu.org/upload/pic/17376.png) Ivica 在学校时,他的妹妹 Marica 打开了游戏,并随机旋转、着色和放置俄罗斯方块图形,使得所有相邻的图形颜色不同。如果两个图形共用一个侧面,则称它们相邻。 当 Ivica 回到他的电脑前的时候,他发现游戏正在运行并显示着他妹妹放置的俄罗斯方块。他想知道俄罗斯方块矩阵中有哪几种图形各多少个。由于他忙于改进游戏,他要求你帮助他解决这个问题。

输入格式

第一行输入包含正整数 $N$ 和 $M(1 \le N,M \le 10)$,分别表示俄罗斯方块矩阵的行数和列数。 接下来 $N$ 行,每行包含表示矩阵的 $M$ 个字符。每个字符都可以是`.`(英文句点),表示空格;或小写英文字母,代表图形的一部分。不同的字母代表不同的颜色,同一图形的各部分颜色相同。

输出格式

输出共 $5$ 行,第 $i$ 行包含一个整数,表示第 $i$ 种图形的出现次数。

说明/提示

对于 $20\%$ 的测试数据,只会出现第 $1$ 种图形。 对于 $40\%$ 的测试数据,只会出现前 $2$ 种图形。 对于 $60\%$ 的测试数据,只会出现前 $3$ 种图形。 对于 $80\%$ 的测试数据,只会出现前 $4$ 种图形。 --- **样例 $3$ 解释:** 下图展示了 Ivica 回到电脑前时的矩阵。 ![](https://cdn.luogu.org/upload/pic/17377.png)