\(N\)행 \(N\)열의 격자가 있다. 위에서 \(i\)행째(\(1 \le i \le N\)), 왼쪽에서 \(j\)열째(\(1 \le j \le N\)) 칸을 칸 \((i, j)\)라고 하며, 칸 \((i, j)\)에는 문자 \(C_{i,j}\)가 적혀 있다. \(C_{i,j}\)는 o 또는 x이다. 어떤 행에도 가로로 o나 x가 3개 연속으로 있지 않고, 어떤 열에도 세로로 o나 x가 3개 연속으로 있지 않으면 Yes를, 그렇지 않으면 No를 출력하는 프로그램을 작성하라. |
입력은 다음 형식으로 주어진다.
\(N\)
\(C_{1,1}\) \(C_{1,2}\) \(\cdots\) \(C_{1,N}\)
\(C_{2,1}\) \(C_{2,2}\) \(\cdots\) \(C_{2,N}\)
\(\vdots\)
\(C_{N,1}\) \(C_{N,2}\) \(\cdots\) \(C_{N,N}\)
다음의 형식으로 출력한다.
- 조건을 만족하면 Yes를 출력한다.
- 조건을 만족하지 않으면 No를 출력한다.
답 이외의 것은 출력하지 않는다.
모든 행·열에서 가로 3개 연속 o나 x, 세로 3개 연속 o나 x가 존재하지 않는다. 따라서 Yes를 출력한다.
1행부터 4행까지 각 행에 o가 가로로 3개 연속 존재한다. 또한 1열부터 3열까지 각 열에 o가 세로로 3개9 연속 존재한다. 따라서 No를 출력한다.
1행·2행·5행·6행에 x가 가로로 3개 연속 존재하고, 3행·4행에 o가 가로로 3개 연속 존재한다. 또한 1열·2열·3열·4열·5열·6열에도 세로 3개 연속 존재한다. 따라서 No를 출력한다.
모든 행·열에서 가로로 3개 연속 o나 x, 세로로 3개 연속 o나 x가 존재하지 않는다. 따라서 Yes를 출력한다.