윷놀이 말판 검증 (Small)
시간 제한5초메모리 제한512 MB
기록된 윷 던지기 순서로 정해진 이동, 잡기, 지름길 규칙에 따라 주어진 보드 배치가 나올 수 있는지 판정합니다.
문제
윷놀이는 반달 모양의 윷가락을 던져 말을 옮기는 한국의 민속놀이다. 두 팀이 번갈아 윷을 던져 말을 움직이고, 자기 말을 모두 결승점으로 통과시킨 팀이 이긴다. 규칙은 지역마다 다르므로 여기서는 아래에 적은 규칙만 쓴다고 가정한다.
- 도(Do): 앞으로 한 칸 간다.
- 개(Gae): 앞으로 두 칸 간다.
- 걸(Gul): 앞으로 세 칸 간다.
- 윷(Yut): 앞으로 네 칸 가고, 윷을 한 번 더 던진다.
- 모(Mo): 앞으로 다섯 칸 가고, 윷을 한 번 더 던진다.
한 번 던지면 그 팀은 움직일 수 있는 말 중 하나를 골라 나온 칸수만큼 옮긴다. 반드시 말 하나를 옮겨야 한다. 아직 출발하지 않은 말을 고르면 판 위에 올려 첫 칸부터 세어 옮긴다. 던진 순서대로 옮겨야 한다. 모가 나온 다음 걸이 나왔다면 세 칸을 먼저 옮기고 다섯 칸을 나중에 옮기는 것은 불가능하다.
자기 말이 자기 다른 말과 같은 칸에 도달하면 업기가 되어 다음 이동부터 두 말이 함께 움직인다. 자기 말이 상대 팀 말이 있는 칸에 도달하면 그 말을 잡고 윷을 한 번 더 던진다. 잡힌 말은 처음부터 다시 출발한다. 윷이나 모로 잡았을 때 더 던지는 횟수는 두 번이 아니라 한 번이다. 아직 판에 올라오지 않은 말은 잡을 수 없다.

말판의 칸에는 0번부터 28번까지 번호가 붙어 있다. 바깥 둘레는 0번에서 19번까지 이어지고, 0번이 출발점이면서 결승점이다. 20번부터 28번까지는 지름길이고 22번이 판의 가운데다. 5번, 10번, 22번에 멈춘 말은 다음에 움직일 때 지름길로 들어간다. 이 세 칸을 지나가기만 한 말은 가던 길을 그대로 따라간다. 멈춘 칸에서 앞으로 가는 순서는 다음과 같다.
0번을 완전히 지나쳐야 말이 통과한 것이 된다. 19번에서 한 칸만 가면 0번에 서고, 아직 통과한 것이 아니라서 상대 말에게 잡힐 수 있다. 그래서 19번에 있는 말을 통과시키려면 두 칸 이상 가야 한다. 0번에 선 말은 다음에 몇 칸을 가든 결승점을 통과한다. 통과한 말은 다시 쓰지 않는다. 한 팀의 말이 모두 통과하는 순간 그 팀이 이기고 경기는 곧바로 멈춘다. 마지막에 윷이나 모가 나와 이겼더라도 경기가 멈춘 뒤에는 더 던지지 않는다.
용이네 가족은 A 팀과 B 팀으로 나누어 윷놀이를 했고, A 팀이 먼저 시작했다. 던진 윷은 나온 순서대로 모두 종이에 적어 두었다.
저녁 시간이 되어 자리를 비운 사이에 강아지 퍼피가 말판을 헤집어 놓았다. 아직 출발하지 않은 말과 이미 통과한 말은 판 밖에 있어서 그대로였지만, 판 위에 있던 말은 위치를 믿을 수 없게 되었다. 퍼피는 종이에서 각 윷을 어느 팀이 던졌는지 적어 둔 부분까지 물어뜯어 갔다. 남은 것은 던진 윷의 전체 목록과 순서뿐이고, 적힌 번은 모두 실제로 던진 것이다.
용이는 기억을 더듬어 말판을 복구했다. 복구한 말판이 종이에 남은 윷 목록과 순서에 맞는 상태인지 판정하라. 경기가 아직 진행 중인 상태와 마지막 던지기로 막 끝난 상태는 둘 다 맞는 상태로 본다. 판 위에 있는 말의 위치만 주어지고, 아직 출발하지 않은 말과 통과한 말이 각각 몇 개인지는 주어지지 않는다.
입력
첫 줄에 테스트 케이스의 수 가 주어진다.
각 테스트 케이스는 네 줄이다. 첫 줄에 정수 네 개 , , , 가 공백으로 구분되어 주어진다. 는 한 팀이 쓰는 말의 수, 은 던진 윷의 개수, 는 판 위에 있는 A 팀 말의 개수, 는 판 위에 있는 B 팀 말의 개수다.
둘째 줄에 던진 윷 개가 던진 순서대로 공백으로 구분되어 주어진다. 각 윷은 Do, Gae, Gul, Yut, Mo 중 하나다.
셋째 줄에 A 팀 말의 위치 개가, 넷째 줄에 B 팀 말의 위치 개가 공백으로 구분되어 주어진다. 개수가 0이면 그 줄은 비어 있다. 같은 칸에 업힌 말이 있으면 그 칸 번호가 말의 개수만큼 나온다.
제한
- ,
- 말의 위치는 0 이상 28 이하다.
출력
각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. 는 1부터 시작하는 테스트 케이스 번호고, 는 판정 결과다. 주어진 윷 목록과 순서로 만들 수 있는 말판이면 YES를, 아니면 NO를 출력한다.