Logo
(追記) (追記ここまで)

28459번 - Judging Forbidden Moves

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB104222033.333%

문제

아티초크는 오목 AI 토너먼트 대회인 Gomocup에 참여하려고 한다. 아티초크가 참여하려고 하는 부문은 Renju 부문으로, 렌주룰을 기반으로 진행된다.

렌주룰은 선 플레이어의 이점을 줄이기 위해 흑돌의 수를 제한하는 금수 규정을 두었는데, 자세한 내용은 다음과 같다.

  • 렌주룰에서 흑은 장목, 44, 33을 둘 수 없다. 이 규칙으로 인해 둘 수 없게 된 자리를 각각 장목금수, 44금수, 33금수라고 한다.
  • 장목이란, 가로, 세로 또는 대각선의 일직선상에서 6개 이상의 돌이 나란히 붙어 있는 모양을 의미한다.
  • 44란, 흑이 한 수를 뒀을 때, 2개 이상의 4가 동시에 만들어지는 모양을 의미한다.
  • 4란, 다섯 칸의 범위 내에 같은 색의 돌이 4개 있고, 돌 하나를 더 붙여서 5목을 완성할 수 있는 자리가 한 군데 또는 두 군데 존재하는 모양을 의미하며, 4는 다시 열린4와 닫힌4로 나뉜다.
  • 5목이란, 가로, 세로 또는 대각선의 일직선상에서 정확히 5개의 돌이 나란히 붙어 있는 모양을 의미한다.
  • 열린4란, 돌 하나를 더 붙여서 5목을 완성할 수 있는 자리가 두 군데인 4를 의미한다.
  • 닫힌4란, 돌 하나를 더 붙여서 5목을 완성할 수 있는 자리가 한 군데인 4를 의미한다.
  • 33이란, 흑이 한 수를 뒀을 때, 2개 이상의 열린3이 동시에 만들어지는 모양을 의미한다.
  • 열린3이란, 돌 하나를 더 붙여서 열린4를 완성할 수 있는 모양을 의미한다.
  • 5목은 다른 어떤 것보다도 우선순위가 높아, 5목을 완성한 경우 즉시 해당 플레이어의 승리로 게임이 종료되며, 해당 수로 인해 열린3, 열린4, 금수 등의 조건이 충족되더라도 그것을 인정하지 않는다.

아티초크는 AI에게 금수 판정을 학습시키는 것을 최우선 과제로 삼았고, 학습을 위해 대량의 기보 데이터를 준비했다. 하지만 구현에 약한 아티초크는 금수 판정 로직을 구현하지 못하여, 준비한 데이터에 라벨이 잘 부여됐는지 판단할 수 없었다. 아티초크를 위해 데이터가 올바른지 대신 검증해 보자.

입력

처음 15줄에는 15개의 알파벳으로 기보 데이터, 즉 오목판의 상태가 주어진다. 검은 오목알이 놓인 자리는 B, 흰 오목알이 놓인 자리는 W, 오목알이 놓이지 않은 자리는 X로 표시되며, 각 알파벳은 붙어서 입력으로 주어진다. 이때, 주어진 오목판에는 장목과 오목이 존재하지 않음이 보장된다.

16번째 줄에는 금수를 판정할 위치를 나타내는 두 정수 $x, y (1 \le x, y \le 15)$가 주어진다. 이는 x행 y열에 흑돌을 두었을 때 금수가 되는지 여부를 판정해야 함을 의미한다.

17번째 줄에는 데이터의 라벨이 입력으로 하여 출력한 결과가 주어진다. 장목금수 데이터는 6, 44금수 데이터는 44, 33금수 데이터는 33, 금수가 아닌 데이터는 X가 입력으로 주어진다. 이때, 라벨의 우선순위는 장목금수, 44금수, 33금수 순으로 높으며, 16번째 줄에서 주어진 자리가 여러 종류의 금수 조건을 충족하는 경우, 그중 우선순위가 가장 높은 라벨을 부여하는 것을 원칙으로 한다.

출력

데이터가 올바르다면 AC를, 올바르지 않다면 WA를 출력한다.

제한

예제 입력 1

XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXBXXXXX
XXXXBXXWWXXXXXX
XXXXXWBBWXXXXXX
XXXXXXWBWWXXXXX
XXXXXXXBXXBXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
10 9
33

예제 출력 1

AC

예제 입력 2

XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXWBWWWBXXXXX
XXXXXXBBXXXXXXX
XXXXXXWXWWXXXXX
XXXXXXWBBXXXXXX
XXXXXXXBBXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
9 8
44

예제 출력 2

AC

예제 입력 3

XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXBXXXXXXXXXX
XXXXXWXXXWXXXXX
XXXXBWXXBXXXXXX
XXXXWXBWWXXXXXX
XXXBXBWBWXXXXXX
XXXXWWXBWBXXXXX
XXBBBWBBBWXXXXX
XXBBWWBWBBBXXXX
XBWWXBWXXWXXXXX
XXBWXBBWWWXXXXX
XBWWWWBWBWXXXXX
XWXWXBXBXWXXXXX
XXXBXXXXXBXXXXX
11 5
6

예제 출력 3

AC

예제 입력 4

XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXWXWXXXX
XXXXBWBBXXXXXXX
XXXXXWXBXXWXXXX
XXXXXXBWXXXXXXX
XXXXXXXBXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
8 9
X

예제 출력 4

AC

예제 입력 5

XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXWXXXXXXXX
XXXXXXWWBWXXXXX
XXXXXXWBWBXXXXX
XXXXXXXBXBXXXXX
XXXXXXWBXXXXXXX
XXXXXXBXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
8 7
33

예제 출력 5

WA

대각선 3은 열린 3이 맞으나, 가로 3의 경우 8행 7열에 흑돌을 두게 되면 8행 9열이 44금수가 되어, 돌 하나를 추가해서 열린 4를 만들 수 없게 되므로, 열린 3이 아니다. 따라서 8행 7열에 흑돌을 둠으로써 생기는 열린 3은 총 1개이며, 해당 자리는 금수가 아니다.

이렇게 33금수와 유사한 형태를 하고 있지만, 실제로는 33금수가 아닌 경우를 "거짓금수" 라고 한다.

예제 입력 6

XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXWXXXXXXXXX
XXXXXBBXXWWXXXX
XXXXXXXXBXXXXXW
XXXXWXBBXXXXWBX
XXXXWXWBWBBWBXX
XXXXXXBXWXWXXXX
XXXXXXXXXBBWXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
7 9
X

예제 출력 6

WA

대각선 3은 열린 3이고, 가로 3 또한 7행 9열에 흑돌을 놓으면 7행 10열이 거짓금수가 되어 흑돌을 하나 더 놓아 열린 4를 만들 수 있게 되므로, 이 또한 열린 3이다. 따라서, 7행 9열에 흑돌을 둠으로써 생기는 열린 3은 총 2개이며, 해당 자리는 33금수이다.

예제 입력 7

XXXXXWXXXXXXXXX
XXXXXBXXXXXXXXX
XXXXXBWXXXXXXXX
XBXXWBWBXXXXXXX
XXWWBBXWBXXXXXX
XXWWBWBWWWBXXXX
XWBBWXXBBWWXXXX
BXBWXXWBWBBBWXX
XWBXXXBWXWBWBXX
XBWXXBBXBBBWXXX
WXWXWWBWWWWBWXX
XXXBXBBWBWWWBXX
XXXXBXWBBWBXBWX
XXXBXXXXXXXXXXX
XXWXXXXXXXXXXXX
10 8
6

예제 출력 7

WA

10행 8열은 5목이 완성되는 자리이므로, 해당 수로 인해 장목금수의 조건이 충족되더라도 장목금수로 인정되지 않는다.

예제 입력 8

XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXWXXXWXXX
XXXXXXWBXXXBXXX
XXXXXXWBWXWBXXX
XXXXXXXBWBWBWXX
XXXXXXXBWBWBWXX
XXXXXXXXBXBXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
9 10
33

예제 출력 8

WA

세로 3은 열린 3이 맞으나, 가로 3의 경우 9행 10열에 흑돌을 두었을 때, 9행 8열과 9행 12열 모두 5목이 완성되는 자리이므로, 해당 수로 인해 열린 4의 조건이 충족되더라도, 열린 4가 만들어지지 않는 것으로 본다. 따라서 가로 3은 열린 3이 아니며, 9행 10열에 흑돌을 둠으로써 생기는 열린 3은 총 1개이므로 해당 자리는 33금수가 아니다.

예제 입력 9

XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXWXBWBXXXXXX
XXXXWWBBWXXXXXX
XXXXXBXBBWXXXXX
XXXXWBBXXWBXXXX
XXXXBXWWXXXXXXX
XXXBXXXXXXXXXXX
XXWXXXXWXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
9 7
44

예제 출력 9

WA

주어진 자리는 장목금수 조건과 44금수 조건을 모두 충족하지만, 장목금수가 44금수보다 더 높은 우선순위를 가지므로 해당 자리를 장목금수로 보고 "6" 라벨을 부여해야 한다. 하지만 AI는 44금수를 의미하는 "44" 라벨을 부여했으므로, 해당 데이터는 올바르지 않다.

노트

출처

Contest > BOJ User Contest > 유틸컵 > 제1회 유틸컵 - Chapter 1 G번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /