시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 (추가 시간 없음) | 1024 MB | 924 | 267 | 153 | 22.533% |
윷놀이는 한국의 전통놀이중 하나로 윷가락을 가지고 진행하는 놀이이다. 윷놀이는 윷가락 4개와, 내 말 4개, 상대편의 말 4개로 총 말 8개 그리고 윷판 하나를 가지고 진행한다. 윷판은 다음과 같이 29개의 위치가 있고, 각각 이름이 붙어 있다. (사진 1)
사진 1: 윷판. 윷판의 각각의 위치에는 이름이 적혀있다.
사진 2: 가능한 네가지 윷길의 그림.
이 게임의 목표는 네 개의 말을 처음의 위치인 날밭에서 시작해, 윷판을 돌아서 다시 날밭으로 돌아온 이후에 탈출하는 게임이다.
각 사람의 턴은 다음과 같이 이루어진다.
윷가락은 앞뒷면이 있어서, 던질 경우에 앞뒷면 중 하나가 보이게 떨어진다. 네 개의 윷 중 앞면의 개수가 전진하는 칸수이다. 단, 모두가 뒷면일 경우에는 5칸 전진하게 된다.
전진하는 방향은 새로운 말일 경우에 날밭에서 시작하는 것으로 생각을 하고 다음의 윷길을 따라 전진한다.
말을 움직일 때는, 기본적으로 (사진 2)의 4번 윷길을 따라서 움직인다. 예를 들면, 윷의 위치에서 두 칸 전진할 경우에 뒷도의 위치로 움직인다. 하지만 특수한 경우에는 1번, 2번 혹은 3번 윷길을 따라서 움직인다. 말이 움직이기 시작할 때 모서리 (뒷밭, 앞밭, 방, 쩔밭, 혹은 날밭)에 시작할 경우에는, 날밭으로 가는 거리가 빠른 곳으로 움직이게 된다.
좀 더 구체적으로는, 말이 움직이기 시작할 때 앞밭에 있던 경우에는, 윷길이 3번 윷길로 바뀐다. 예를 들면, 앞밭에서 한 칸 전진하면 앞모도, 두 칸 전진하면 앞모개의 위치에 있게 된다. 윷의 위치에서 한 칸 전진하는 것을 두 번 진행하면 앞모도의 위치에 있지만, 두 칸 전진하는 것을 한 번 진행하면 뒷도의 위치에 있게 된다.)
또, 말이 움직이기 시작할 때 뒷밭에 있었던 경우에는 2번 윷길을 따르게 되어서, 뒷밭에서 한 칸 전진하면 뒷모도, 두 칸 전진하면 뒷모개의 위치에 있게 된다.
또한, 3번 윷길에 있던 말이 방에서 전진을 시작할 경우에는 1번 윷길을 따르게 된다. 방에서 한 칸 전진하면 사려, 두 칸 전진하면 안찌의 위치에 있게 된다.
이렇게 윷길을 따라 이동한 말은 날밭에 도착한 이후로 말이 한 칸 움직이면 판에서 빠져나가게 되어서 판에 다시 등장하지 않게 된다. 전진을 두 번에 나눠서 하지 않고 한번에 해도 된다. 예를 들면, 날걸에서 2칸을 전진하면 날밭에 도착하고, 한 칸 더 전진하면 빠져나가게 된다. 날걸에서 3칸, 4칸, 5칸을 전진해도 빠져나갈 수 있다.
하지만 이렇게 되면 단지 윷가락을 잘 던져서 잘 빠져나가는 게임이 될 뿐이다. 그래서 윷놀이에는 게임을 재밌게 하고 경쟁요소를 추가할 새로운 규칙들이 추가되었다.
하나는 말을 업는 규칙이다. 같은 위치에 있는 자기 편의 말이 두 개 이상 존재한다면, 그 말 중 하나만 움직이는 것으로 전체 말을 다 움직이게 된다.
다른 하나는 말을 잡는 규칙이다. 상대편의 말이 있는 위치가, 자신의 말의 목적지인 경우에는 상대편의 말을 게임판에서 제거하여 시작하기 전의 위치로 옮긴다. 이 말이 다시 출발하려면 날밭에서 부터 출발하게 된다.
당신은 이 윷놀이 게임의 개발을 맡게 되었다. 당신이 해야할 일은 윷놀이의 각 턴이 주어졌을 때 판의 상태를 출력하는 일이다.
입력의 첫째 줄에는 N이 주어진다. 이 N은, 윷을 던지고 말을 움직인 횟수를 나타낸다.
다음 N개의 줄의 i번째 줄에는, i번째 턴이 어떤 것이었는지가 주어진다. i번째 턴은, 말에 대한 정보와 윷에 대한 정보로 주어진다.
어떤 말인지에 대한 정보는 "ABCDabcd
" 문자중 하나로, 각 윷에 대한 정보는 뒷면을 뜻하는 'B
' 혹은 앞면을 뜻하는 'F
' 문자가 공백으로 구분되지 않고 4개가 이어서 주어지며, 말에 대한 정보와 윷에 대한 정보는 공백 하나로 구분되어 있다.
여기서, 대문자 끼리는 같은 팀의 말을, 소문자 끼리도 같은 팀의 말을 나타내고, 소문자와 대문자는 서로 다른 팀을 의미한다.
기본적인 윷판은 다음 32 × 32 문자열로 주어진다.:
..----..----..----..----..----.. .. .. .. .. .. .. | \ / | | \ / | | \ / | | .. .. | .. .. .. .. .. \ / .. | \ / | | \ / | | .. .. | | .. .. | .. \ / .. .. \ / .. | \ / | | .. | | .. | | / \ | .. / \ .. .. / \ .. | .. .. | | .. .. | | / \ | | / \ | .. / \ .. .. .. .. .. | .. .. | | / \ | | / \ | | / \ | .. .. .. .. .. .. ..----..----..----..----..----..
이 문자열은 "/\.|-
"과 공백, 개행문자로만 이루어진 문자열이다. (따옴표는 포함되지 않는다.) 이 문자열은 윷판을 의미하고, 각 칸은 2 × 2 모양의 '.
' 문자로 표현이 되어 있다. 가장 왼쪽 위 부터 행우선으로 칸을 읽으면, 차례로 뒷밭, 뒷윷, 뒷걸, 뒷개, 뒷도, 앞밭(모), 뒷모도, 앞모도, 찌도, 윷, 뒷모개, 앞모개, 찌개, 걸, 방, 찌걸, 개, 속윷, 사려, 찌윷, 도, 속모, 안찌, 쩔밭, 날도, 날개, 날걸, 날윷 그리고 날밭 순이 된다.
여기서, N개의 턴이 진행된 후, 각 말이 어느 칸에 있는 지를 출력하여야 한다. 각 칸에 있는 2 × 2 모양의 '.
' 문자로 표현이 된 칸 중 한 칸에 출력한다.
A
혹은 a
의 말은 왼쪽 위에, B
혹은 b
의 말은 오른쪽 위에, C
혹은 c
의 말은 왼쪽 아래에, D
혹은 d
의 말은 오른쪽 아래에 위치한 '.
' 문자를 대체하여 출력한다.
이 서브태스크는 다음의 조건을 만족한다.:
ABCD
"중 하나로 주어진다. (따옴표는 제외한다.)이 서브태스크는 다음의 조건을 만족한다.:
ABCD
"중 하나로 주어진다. (따옴표는 제외한다.)이 서브태스크는 다음의 조건을 만족한다.:
ABCD
"중 하나로 주어진다. (따옴표는 제외한다.)이 서브태스크는 다음의 조건을 만족한다.:
ABCD
"중 하나로 주어진다. (따옴표는 제외한다.)이 서브태스크는 추가 제한 조건이 없다.
4 A BBFB B BBFB A BFFB c FFFB
..----..----..----..----..----.. .. .. .. .. .. .. | \ / | | \ / | | \ / | | .. .. | .. .. .. .. .. \ / .. | \ / | | \ / | | .. .. | | .. .. | .. \ / .. .. \ / c. | \ / | | .. | | .. | | / \ | .. / \ .. .. / \ .. | .. .. | | .. .. | | / \ | | / \ | .. / \ .. .. .. .. .. | .. .. | | / \ | | / \ | | / \ | .. .. .. .. .. .. ..----..----..----..----..----..
21 A FFFB c FBBF d FBBB B BBFB C BFBF d FFBF B BFBF a BBBF C BBBB D FBFF a FFFB d FBFF b FFFF b BBBB c BFFF B BBFB b BBBF B FFFF c BBBB b BBBF A FFFF
..----..----..----..----..----.B .. .. cd C. .. .. | \ / | | \ / | | \ / | | ab .. | .. .. .. A. .. \ / .. | \ / | | \ / | | .. .. | | .. .. | .. \ / .. .. \ / .. | \ / | | .. | | .. | | / \ | .. / \ .. .. / \ .. | .. .. | | .. .. | | / \ | | / \ | .. / \ .. .. .. .. .. | .. .. | | / \ | | / \ | | / \ | .. .. .. .. .. .. ..----..----..----..----..----..