아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Chomp

시간 제한1초메모리 제한128 MB

요약
3행 Chomp 판마다 승패를 판정하고 승리 위치에서는 패배 위치로 보내는 수를 출력합니다.
난이도

보통10점 중 6점

유형
게임 이론, 동적 계획법
정답자
아직 제출이 없습니다

문제

Chomp는 직사각형 초콜릿을 정사각형 칸으로 나눈 판 위에서 두 사람이 번갈아 두는 게임이다. 자기 차례가 된 사람은 남아 있는 칸 하나를 골라 먹는데, 고른 칸과 열 번호가 같거나 더 크고 행 번호도 같거나 더 큰 칸을 모두 함께 먹는다. 왼쪽 맨 아래 칸에는 독이 들어 있고, 이 칸을 먹을 수밖에 없게 된 사람이 진다.

열은 왼쪽부터 1,2,3,…1, 2, 3, \dots으로, 행은 아래부터 1,2,31, 2, 3으로 번호를 매긴다. 독이 든 칸은 11열 11행이다.

어떤 위치에서 상대를 지는 위치로 보내는 수가 하나라도 있으면 그 위치는 이기는 위치다. 어떤 수를 두어도 독이 든 칸을 먹게 되거나 상대에게 이기는 위치를 넘겨주면 그 위치는 지는 위치다. 예를 들어 1×11 \times 1 판과 두 팔의 길이가 같은 L자 판은 지는 위치다. 상대가 이쪽이 둔 수를 그대로 따라 두면 되기 때문이다. 3×33 \times 3 판, 두 팔의 길이가 다른 L자 판, 한 줄짜리 1×n1 \times n 판은 이기는 위치다.

이 문제에서는 행이 33개이고 열이 최대 100100개인 Chomp를 푼다. 칸을 먹으면 그 오른쪽 위쪽 칸이 항상 함께 사라지므로 각 행에 남는 칸은 왼쪽부터 이어지는 연속된 칸이고, 게임 도중 나올 수 있는 위치는 아래 행에 남은 칸 수 pp, 가운데 행에 남은 칸 수 qq, 위 행에 남은 칸 수 rr 세 값으로 정해진다. 이 값들은 100≥p≥q≥r≥0100 \ge p \ge q \ge r \ge 0을 만족한다.

주어진 위치가 이기는 위치인지 지는 위치인지 판정하고, 이기는 위치라면 다음에 먹어서 상대를 지는 위치로 보낼 칸을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 데이터 집합의 개수 PP가 주어진다. (1≤P≤10001 \le P \le 1000)

다음 PP개 줄에는 각 줄마다 데이터 집합이 하나씩 주어진다. 한 줄에는 데이터 집합 번호 KK, 아래 행에 남은 칸 수 pp, 가운데 행에 남은 칸 수 qq, 위 행에 남은 칸 수 rr이 공백 하나를 사이에 두고 주어지며 100≥p≥q≥r≥0100 \ge p \ge q \ge r \ge 0이다. 데이터 집합은 서로 독립이다.

출력

각 데이터 집합마다 한 줄씩 출력한다.

지는 위치이면 데이터 집합 번호 KK, 공백 하나, 대문자 L을 출력한다.

이기는 위치이면 데이터 집합 번호 KK, 대문자 W, 다음에 먹을 칸의 열 번호와 행 번호를 공백 하나씩 사이에 두고 출력한다. 상대를 지는 위치로 보내는 수가 여러 개이면 열 번호가 가장 작은 수를 출력하고, 열 번호가 같은 수가 여럿이면 그중 행 번호가 가장 작은 수를 출력한다.

예제2

  1. 예제 1

    입력
    4
    1 3 3 3
    2 3 1 0
    3 3 2 0
    4 97 64 35
    
    예상 출력
    1 W 2 2
    2 W 3 1
    3 L
    4 W 51 1
    
  2. 예제 2

    입력
    4
    1 3 2 1
    2 3 3 1
    3 4 3 2
    4 6 5 3
    
    예상 출력
    1 W 1 3
    2 W 2 2
    3 W 1 3
    4 W 1 3