[JSOI2015] symmetry

题目描述

张老师正在课堂上讲解正方形的对称模式。为了简单起见,他用 $01$ 方阵代表一个正方形图形,即把正方形分解成 $n\times n$ 的方格阵,$0$ 代表一个白色方格,$1$ 代表一个黑色方格。 首先讲到的是容易辨别的轴对称,正方形有 $4$ 个对称轴,分别是水平中线,竖直中线和两条对角线。如果一个正方形图形以某个对称轴做反射变换后保持不变,就称为轴对称图形。例如下面的两个图形都是轴对称图形。 ```plain 100 010 100 101 111 000 ``` 张老师继续讲解正方形的旋转对称。如果一个正方形图形以中心点旋转 $180$ 度后保持不变,就称为 $180$ 度对称图形。如果以中心点顺时针旋转 $90$ 度后保持不变,就称为 $90$ 度对称图形,例如下面的两个图形左边是 $180$ 度对称图形,右边是 $90$ 度对称图形。 ```plain 0011 1011 1110 1110 0111 0111 1100 1101 ``` 张老师接着说,如果一个正方形图形具有两个互相垂直的对称轴,就称为 $4$ 对称图形,如果关于 $4$ 个对称轴全部对称,就称为 $8$ 对称图形。按照定义,$90$ 度对称图形也是 $180$ 度对称图形,$8$ 对称图形也是 $4$ 对称图形。当正方形图形的边长为偶数时,该图形的中心是最中间 $4$ 个方格的公共顶点,当正方形图形的边长为奇数时,该图形有一个中心方格,该图 形的中心也是它的中心方格的中心。边长为 $1$ 的图形显然是 $8$ 对称图形。 张老师给学生证明了两个定理。 - 定理 $1$:一个正方形图形是 $4$ 对称图形当且仅对它是 $180$ 度对称图形和轴对称图形。 - 定理 $2$:一个正方形图形是 $8$ 对称图形当且仅对它是 $90$ 度对称图形和轴对称图形。 最后是练习时间,张老师要求学生寻找在大正方形图形中出现的各种对称图形。请你编程实现这个要求。设输入一个 $01$ 方阵,输出满足 $8$ 对称,$90$ 度对称,$4$ 对称,$180$ 度对称和轴对称的最大子连续方阵的边长。子连续方阵是指选择若干相邻行列的子方阵,代表在大图形中出现的小图形。

输入输出格式

输入格式


输入的第一行是一个正整数 $n$,表示大正方形图形的边长。然后是 $n$ 行长度为 $n$ 的 $01$ 字符串。

输出格式


输出有一行,包含 $5$ 个以空格隔开的自然数,分别表示在输入中出现的最大 $8$ 对称,$90$ 度对称,$4$ 对称,$180$ 度对称和轴对称的子连续方阵的行数。

输入输出样例

输入样例 #1

5
11100
11000
10111
11000
11100

输出样例 #1

2 2 3 3 5

说明

#### 样例说明 大图形有水平对称轴,左上角有一个 $2\times 2$ 的 $8$ 对称图形,中间 $3$ 行最右 $3$ 列构成 $4$ 对称图形。 --- #### 数据范围 对于 $100\%$ 的数据,$5\leq n\leq 500$。