#abc241c. [abc241_c]Connect 6

[abc241_c]Connect 6

题目描述

有一个网格,有 NN 个水平行和 NN 个垂直列,每个方格都被涂成黑色或白色。
网格的状态用 NN 个字符串 SiS_i 表示。如果 SiS_i 的第 jj 个字符是 #,表示从上往下数第 ii 行、从左往右数第 jj 列的方格被涂成黑色。如果字符是 .,表示方格被涂成白色。

高桥最多可以选择两个被涂成白色的方格并将它们涂成黑色。
判断是否存在一种涂色方式,使得网格中具有连续的 66 个或更多个黑色方格,无论是水平、垂直还是对角线方向。
这里,如果 NN 行、NN 列的网格完全包含了一个 6666 列的子网格,并且至少有一个对角线上的所有方格都被涂成黑色,我们称网格中包含有连续的 66 个或更多个黑色方格的子网格。

约束条件

  • 6leqNleq10006 \\leq N \\leq 1000
  • lvertSirvert=N\\lvert S_i\\rvert =N
  • SiS_i 由字符 #. 组成。

输入

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

NN S1S_1 S2S_2 vdots\\vdots SNS_N

输出

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


示例输入 1

8
........
........
.#.##.#.
........
........
........
........
........

示例输出 1

Yes

通过将从上往下数第 33 行、从左往右数第 66 列的方格涂成黑色,可以使得连续 66 个方格在水平方向上都被涂成黑色。


示例输入 2

6
######
######
######
######
######
######

示例输出 2

Yes

虽然高桥无法选择方格来涂成黑色,但是网格已经满足条件。


示例输入 3

10
..........
#..##.....
..........
..........
....#.....
....#.....
.#...#..#.
..........
..........
..........

示例输出 3

No