#ABC241C. [ABC241C] 连接 6(Connect 6)

[ABC241C] 连接 6(Connect 6)

题目描述

高桥有一个N×NN×N的网格,每个方格要么是黑色要么是白色。网格的状态由 NN个字符串 Si S_i 表示。

如果 SiS_i 的第 jj 个字符是 '#',则从上往下第 ii 行、从左往右第 jj 列的方格是黑色的。如果是 '.',则该方格是白色的。

高桥最多可以选择两个白色方格并将它们涂成黑色。判断是否可能使网格中出现 6 个或更多连续的黑色方格,这些方格可以是垂直、水平或对角线排列的。

这里,如果 N×NN×N 的网格完全包含一个 6×66 × 6 的子网格,且该子网格的至少一条对角线上的所有方格都是黑色的,则认为网格中出现了对角线排列的 66 个或更多连续的黑色方格。

输入格式

第一行输入 NN

接下来有 NN 行,每行输入一个字符串 SiS_i

输出格式

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

样例 #1

样例输入 #1

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

样例输出 #1

Yes

样例 #2

样例输入 #2

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

样例输出 #2

Yes

样例 #3

样例输入 #3

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

样例输出 #3

No

提示

样例说明 1

通过将第 3 行从左数第 3 个和第 6 个方格涂黑,可以使水平方向上出现 6 个连续的黑色方格。

样例说明 2

虽然高桥不能选择任何方格涂黑,但网格已经满足条件。

数据范围

  • 6  N  1000 6\ \leq\ N\ \leq\ 1000
  •  Si =N \lvert\ S_i\rvert\ =N
  • Si S_i 仅由 #. 组成。