CF677E Vanya and Balloons
题目描述
有一个挂着 $n\times n$ 个气球的棋盘,每个气球上有一个数字,数字只可能为 $0,1,2,3$ 中的一个。Vanya 要扎破一个十字形区域内的气球,使得这些气球上的数字乘积最大。
有两种“十字形区域”:一般形和旋转形,例如:
一般形:
```
**o**
**o**
ooooo
**o**
**o**
```
旋转形:
```
o***o
*o*o*
**o**
*o*o*
o***o
```
形式化地讲,十字形可如下定义:给定三个整数 $r,c,d$,满足 $d\leqslant r,c\leqslant n-d+1$。一般形的十字形由所有坐标满足 $|x-r|\cdot|y-c|=0$ 且 $|x-r|+|y-c|
输入格式
输入的第一行包括一个整数 $n$($1\leqslant n\leqslant10^3$),表示棋盘的行数(也即列数),
接下来的 $n$ 行,每行包括 $n$ 个字符:'0', '1', '2' 或者 '3',表示这一行气球上面的数字。
输出格式
输出可能得到的最大乘积对 $10^9+7$ 取模后的结果。
注意,你不需要保证最终得到的余数是最大的,而只需要计算出最大乘积对 $10^9+7$ 取模后的结果。
说明/提示
In the first sample, the maximum product is achieved for a rotated cross with a center in the cell $ (3,3) $ and radius $ 1 $ : $ 2·2·3·3·3=108 $ .