#AT2087. C - Connect 6

C - Connect 6

当前没有测试数据。

C - 连连看6

得分:300分

问题描述

有一个 $N \times N$ 的网格,每个方格都被涂成黑色或白色。
网格的状态由 $N$ 个字符串 $S_i$ 表示。 如果 $S_i$ 的第 $j$ 个字符是 #,表示从上往下数第 $i$ 行、从左往右数第 $j$ 列的方格是黑色的。 如果字符是 .,表示方格是白色的。

高桥可以选择最多两个涂成白色的方格,并将它们涂成黑色。
确定是否有可能使得网格中连续涂黑的方格的数量达到或者超过 $6$,并且这些方格在垂直、水平或者对角线上是连在一起的。
这里,如果 $N$ 行 $N$ 列的网格完全包含一个 $6$ 行 $6$ 列的子网格,并且这个子网格的对角线上的所有方格都是黑色的,则称网格中包含了连续涂黑方格达到或者超过 $6$ 的情况。

约束

  • $6 \leq N \leq 1000$
  • $\lvert S_i\rvert =N$
  • $S_i$ 由 #. 构成。

输入

从标准输入读入输入数据,输入格式如下:

NN

S1S_1

S2S_2

\vdots

SNS_N

输出

如果可以通过涂黑最多两个方格来满足条件,则输出 Yes;否则,输出 No


8
........
........
.#.##.#.
........
........
........
........
........
Yes

通过将从上往下数第三行、从左往右数第三个和第六个方格涂黑,可以使得有连续 $6$ 个水平方向的方格被涂黑。


6
######
######
######
######
######
######
Yes

尽管高桥无法选择一个方格涂黑,但是网格已经满足了条件。


10
..........
#..##.....
..........
..........
....#.....
....#.....
.#...#..#.
..........
..........
..........
No