给你一个矩阵,只由小写或大写字母构成。求出它的最大对称子矩阵的边长。

其中对称矩阵是一个k*k的矩阵,它的元素关于从左下角到右上角的对角线对称。 
例如下面这个3* 3的矩阵是对称矩阵: 
cbx 
cpb 
zcc

Input

多组数据。每一组第一行是一个 n (0<n<=1000),下面是n行,每一行有n个字母,中间没有空格。数据以n=0结束。

Output

每组数据输出最大的对称矩阵的边长。

Sample Input

3
abx
cyb
zca
4
zaba
cbab
abbc
cacq
0

Sample Output

3
3

题目大意:中文题意

题目思路:每一个对称矩阵都可以由他的右上角元素得来,因为其关于左下-右上的对角线对称,所以我们可以把每一个元素当成左下角的元素,所以遍历当前元素时就可以去更新他左下角的元素.自己画图可以看出来状态转移方程

dp[i+1][j-1]+=当前点往上与当前点往右最大的相等长度

AC代码: