AT_past18_h Cを探せ!
题目描述
在如下所示的网格上,被称为 **C** 的对象:
```
### #### #####
#.. #... #....
### #... #....
#### #....
#####
```
上图从左到右分别表示了等级为 $1$、$2$、$3$ 的 **C**。
正式地,给定正整数 $l$,定义等级为 $l$ 的 **C** 如下:
- 等级为 $l$ 的 **C** 是一个 $ (l+2) \times (l+2) $ 的正方形网格。
- 该正方形上边界、左边界和下边界的所有格子都写有 `#`。
- 其余所有格子都写有 `.`。
现在,给定一个 $N \times N$ 的网格,每个格子上写有 `#` 或 `.`。
该网格通过 $N$ 个字符串 $S_1, S_2, \dots, S_N$ 描述,第 $i$ 个字符串的第 $j$ 个字符代表从上到下第 $i$ 行、从左到右第 $j$ 列的格子的字符。
请你找出,可以从该网格中截取出的(连接的)正方形区域所能构成的 **C** 的最大等级。
如果无法截取出任何一个 **C**,请输出 $0$。
输入格式
输入由标准输入给出,格式如下:
> $N$
> $S_1$
> $S_2$
> $\vdots$
> $S_N$
输出格式
输出一个整数,表示所能截取出的最大等级的 **C**。
说明/提示
### 样例解释 1
如果从第 $1$ 行到第 $3$ 行,并从第 $2$ 列到第 $4$ 列所构成的正方形区域中截取出来,能得到一个等级为 $1$ 的 **C**。
无法截取出等级 $2$ 或更高的 **C**。
### 样例解释 2
无法从该网格中截取出任何一个 **C**。
### 数据范围
- $N$ 是一个满足 $3 \leq N \leq 300$ 的整数。
- $S_i$ 是长度为 $N$ 的字符串,仅由 `#` 和 `.` 组成。
由 ChatGPT 5 翻译