오목


답안 제출

Points: 10
시간 제한: 2.0s
메모리 제한: 256M

문제 유형
허용된 언어
C, C++, Python

오목은 바둑판에 검은 바둑알과 흰 바둑알을 교대로 놓아서 겨루는 게임입니다. 바둑판은 가로, 세로 19개의 선으로 이루어져 있습니다.

오목은 같은 색의 바둑알이 연속적으로 다섯 알이 놓이면 그 색이 이기게 됩니다. 여기서 연속적이란 가로, 세로 또는 대각선 방향 모두를 뜻합니다.

하지만 여섯 알 이상이 연속적으로 놓인 경우(육목 이상)에는 이긴 것이 아닙니다.

입력으로 바둑판의 어떤 상태가 주어졌을 때, 검은색이 이겼는지, 흰색이 이겼는지 또는 아직 승부가 결정되지 않았는지를 판단하는 프로그램을 작성하시오.

단, 검은색과 흰색이 동시에 이기거나 검은색 또는 흰색이 두 군데 이상에서 동시에 이기는 경우(동시 승리)는 입력으로 들어오지 않는다고 가정합니다.

입력

19줄에 걸쳐 각 줄마다 19개의 숫자가 공백으로 구분되어 주어집니다.

검은 바둑알은 1, 흰 바둑알은 2, 알이 놓이지 않은 빈자리는 0으로 표시됩니다.

출력

첫 번째 줄에 검은색이 이겼을 경우에는 1을, 흰색이 이겼을 경우에는 2를, 아직 승부가 결정되지 않았을 경우에는 0을 출력합니다.

검은색 또는 흰색이 이겼을 경우에는 둘째 줄에 연속된 다섯 개의 바둑알 중에서 가장 왼쪽에 있는 바둑알의 가로줄(행) 번호와 세로줄(열) 번호를 순서대로 출력합니다.

단, 연속된 다섯 개의 바둑알이 세로로 놓인 경우에는 그중 가장 위에 있는 것의 행 번호와 열 번호를 출력합니다. (행과 열 번호는 1부터 시작합니다.)

제한 사항

  • 바둑판의 크기는 항상 19×19 고정입니다.
  • 여섯 알 이상 연속으로 놓인 '육목'의 경우 승리로 인정하지 않는 것에 주의해야 합니다.

예제 입력 1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 0 0 2 2 2 1 0 0 0 0 0 0 0 0 0 0
0 0 1 2 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 2 2 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

예제 출력 1

1
3 2

코멘트

현재 작성된 코멘트가 없습니다.