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 翻译