atcoder#ABC241C. [ABC241C] Connect 6

[ABC241C] Connect 6

题目描述

N N N N 列のマス目があり、それぞれのマスは白または黒で塗られています。
マス目の状態は N N 個の文字列 Si S_i で表され、 Si S_i j j 文字目が # であることはマス目の上から i i 行目、左から j j 列目のマスが黒く塗られていることを、 . であることは白く塗られていることをさします。

高橋君はこのマス目のうち高々 2 2 つの白く塗られているマスを選び、黒く塗ることができます。
マス目の中に、黒く塗られたマスが縦、横、ななめのいずれかの向きに 6 6 つ以上連続するようにできるか判定してください。
ただし、黒く塗られたマスがななめに 6 6 つ以上連続するとは、N N N N 列のマス目に完全に含まれる 6 6 6 6 列のマス目であって、その少なくとも一方の対角線上のマスがすべて黒く塗られているようなものが存在する事をさします。

输入格式

入力は以下の形式で標準入力から与えられる。

N N S1 S_1 S2 S_2 \vdots SN S_N

输出格式

高々 2 2 つのマス目を黒く塗ることで条件をみたすようにできるなら Yes を、そうでないならば No を出力せよ。

题目大意

有一个 N×NN\times N 的棋盘网格用 NN 行字符串 SiS_i 来表示。如果 Si,jS_{i,j}#,说明棋盘的第 ii 行第 jj 列有一个棋子,否则如果 Si,jS_{i,j}.,说明没有棋子。

请你判断是否可以再加入最多两个棋子使得棋盘存在六子连。六子连的定义是,存在某行、某列或者某对角线上有连续的六个棋子。

8
........
........
.#.##.#.
........
........
........
........
........
Yes
6
######
######
######
######
######
######
Yes
10
..........
#..##.....
..........
..........
....#.....
....#.....
.#...#..#.
..........
..........
..........
No

提示

制約

  • 6  N  1000 6\ \leq\ N\ \leq\ 1000
  •  Si =N \lvert\ S_i\rvert\ =N
  • Si S_i #. のみからなる。

Sample Explanation 1

上から 3 3 行目の左から 3 3 , 6 6 番目のマスを塗ることで横方向に 6 6 つの黒く塗られたマスを連続させることができます。

Sample Explanation 2

高橋君はマス目を新たに黒く塗ることはできませんが、すでにこのマス目は条件をみたしています。