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

33568번 - VCF 인터랙티브

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

문제

오목은 흑돌과 백돌이 번갈아 오목판에 돌을 두어 한 줄에 같은 색깔의 돌을 가로, 세로, 또는 대각선으로 정확히 5개 연결한 형태인 오목을 먼저 완성한 사람이 승리하는 게임이다. 오목에는 VCF (Victory by Continuous Fours)라는 공격 형태가 있는데, 이는 사목을 연속으로 만든 뒤, 최종적으로 오목을 두어서 승리하는 것을 의미한다. 여기서 사목이란 다섯 칸의 범위 내에 같은 색의 돌이 4개 있고, 돌 하나를 더 붙여서 오목을 완성할 수 있는 자리가 한 군데 또는 두 군데 존재하는 모양을 의미한다.

아티초크는 기보 데이터가 주어졌을 때, 주어진 색의 플레이어에게 VCF가 존재하여 3수 이내에 오목을 완성할 수 있는지 여부를 판별하는 프로그램을 짜려고 했지만, 구현 능력이 부족하여 당신에게 도움을 요청했다. 아티초크를 위해 프로그램을 대신 작성해 보자.

입력

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

16ドル$번째 줄에는 B 또는 W가 주어진다. B가 주어진 경우 플레이어는 흑돌이고, W가 주어진 경우 플레이어는 백돌이다.

출력

주어진 오목판에서 플레이어의 차례일 때, 플레이어에게 VCF가 존재하지 않거나, 3수 이내에 오목을 완성할 수 없는 경우 -1을 출력하고 프로그램을 종료한다.

플레이어에게 VCF가 존재하여 3수 이내에 오목을 완성할 수 있는 경우, 다음 쿼리를 최대 3번까지 사용할 수 있다.

  • $x_p$ $y_p$: $x_p$행 $y_p$열 $(1 \leq x_p, y_p \leq 15)$에 플레이어가 돌을 놓는다.
    • 단, 지정한 위치에 이미 돌이 놓여 있거나, 돌을 두었을 때 사목 또는 오목이 완성되지 않으면 를 받는다.

채점 시스템에 쿼리를 출력했을 때, 플레이어가 오목을 완성했다면, 를 받는다.

오목을 완성하지 못한 상태라면, 채점 시스템이 다음과 같은 방식으로 상대방의 다음 수를 반환한다.

  • $x_o$ $y_o$: $x_o$행 $y_o$열 $(1 \leq x_o, y_o \leq 15)$에 상대방이 돌을 놓는다.
    • 상대방에게 오목을 완성할 수 있는 자리가 있는 경우 해당 자리를 우선적으로 두며, 이 경우 를 받는다.
    • 그렇지 않은 경우, 상대방은 플레이어가 다음 차례에 오목을 완성할 수 있는 자리에 돌을 둔다.
    • 플레이어가 다음 차례에 오목을 완성할 수 있는 자리가 여러 곳인 경우, 채점 시스템은 그 중 한 자리를 랜덤으로 골라서 둔다.

제한

예제 입력 1

XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXBXXWXXXXX
XXXXXBXWBXXXXXX
XXXXWXWBWXXXXXX
XXXXWBBBXWXXXXX
XXXXXXBWXXXXXXX
XXXXXXXBXXXXXXX
XXXXXXXXWXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
B
11 5
6 6

예제 출력 1

10 6
8 6
11 6

플레이어는 다음과 같은 과정을 통해 VCF로 승리할 수 있다.

  1. 첫 번째 쿼리로 10행 6열에 돌을 두어 대각선으로 사목을 완성한다.
  2. 채점 시스템은 플레이어가 오목을 완성할 수 있는 자리인 11행 5열에 돌을 두어 대각선으로 완성된 사목을 막는다
  3. 두 번째 쿼리로 8행 6열에 돌을 두어 세로로 사목을 완성한다.
  4. 플레이어가 오목을 완성할 수 있는 자리가 두 자리 이상이므로, 그 중 하나인 6행 6열 (또는 11행 6열)에 돌을 둔다.
  5. 세 번째 쿼리로 11행 6열 (또는 6행 6열)에 돌을 두어 오목을 완성한다.

모든 예제는 입출력이 어떤 방식으로 이루어지는지 이해를 돕기 위해 의도적으로 줄 간격을 조절한 것이며, 실제 입출력과 다른 것에 유의한다.

예제 입력 2

XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXWXBXXXX
XXXXXXXWWBBWXXX
XXXXXXWBXWBWXXX
XXXXXXXBWBBBBWX
XXXXXXXXBXWXXXX
XXXXXXXWXBXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
W

예제 출력 2

-1

플레이어는 상대가 오목을 완성할 수 있는 자리인 5행 11열에 돌을 두어야 하지만, 이 자리는 사목 또는 오목이 완성되는 자리가 아니므로 플레이어는 VCF로 승리할 수 없다.

예제 입력 3

XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXWXXXXX
XXXXXXWBBBXXXXX
XXXXXXXBWXBXXXX
XXXXXXXXWBXXXXX
XXXXXXXBWWXXXXX
XXXXXXXWWXXXXXX
XXXXXXXXBXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
B

예제 출력 3

-1

플레이어는 4행 8열, 3행 8열, 4행 9열, 2행 7열 (또는 7행 12열) 순서로 두어 VCF로 승리할 수 있지만, 이는 3수를 초과하므로, -1을 출력한다.

예제 입력 4

XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXWBBBBXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
B
 

예제 출력 4

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8 10

플레이어는 8행 10열에 돌을 두어 바로 오목을 완성할 수 있으며, 이 경우 또한 VCF로 인정된다.

노트

금수는 고려하지 않는다.

출처

Contest > BOJ User Contest > 유틸컵 > 제2회 유틸컵 ⚫⚪번

채점 및 기타 정보

  • 예제는 채점하지 않는다.
(追記) (追記ここまで)

출처

대학교 대회

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

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