Every? Only One's Marble
시간 제한1초메모리 제한1024 MB
주사위를 굴려 도시 칸을 사들이고 황금 열쇠 카드, 무인도, 사회복지기금을 처리하는 혼자 하는 부루마불을 시뮬레이션한 뒤, 주사위가 모두 떨어지기 전에 모든 도시를 샀는지 판정한다.
문제
유틸은 오늘도 혼자 집에 있다. 심심해서 같이 부루마불 게임을 할 사람을 찾아봤지만 아무도 없었다. 그렇게 한 시간, 두 시간... 도저히 참을 수 없었던 유틸은 부루마불 게임을 혼자 할 방법을 생각해 냈다.

혼자 하는 부루마불 게임에 적용되는 규칙은 다음과 같다.
-
일반 칸은 두 종류다.
- 도시 칸: 돈을 내고 땅을 사야 하는 칸
- 황금 열쇠 칸: 특정한 효과가 있는 카드가 발동되는 칸
-
특수 칸은 네 종류다.
- 시작 칸: 이 칸에 정확히 멈추거나 지나가게 되면, 월급을 받게 된다.
- 무인도 칸: 이 칸에 정확히 멈추게 되면, 다음 세 턴 동안 갇히게 된다.
- 갇혀 있는 동안, 두 주사위를 던졌을 때 눈이 같은 수로 나오면 무인도를 탈출하게 되며 두 주사위를 한 번 더 던져서 나온 수만큼 이동한다.
- 사회복지기금 칸: 이 칸에 정확히 멈추게 되면, 지금까지 모인 사회복지기금을 받게 된다. 사회복지기금을 받고 나면, 기부금은 0원이 된다.
- 우주여행 칸: 이 칸에 정확히 멈추게 되면, 다음 턴에 시작 칸으로 이동한 뒤 주사위를 굴린다.
-
칸은 총 개가 존재하며, 이 중 정확히 네 개의 칸이 특수 칸이고, 나머지 칸은 일반 칸이다. 번째 칸은 시작 칸이고, 처음에 이곳에서 시작한다. 번째 칸은 무인도 칸이고, 번째 칸은 사회복지기금 칸이다. 번째 칸은 우주여행 칸이다. 번째 칸과 번째 칸이 연결되어 있음에 유의해야 한다.
-
유틸은 매 턴 다음 순서로 행동한다.
- 두 주사위 던지기
- 두 주사위의 눈만큼 이동하기
- 도착한 칸에 따른 행동 수행하기
-
도시 칸에 도착했을 때 가지고 있는 돈이 땅의 가격보다 많거나 같다면, 반드시 땅을 구매해야 한다.
- 도시 칸의 땅을 이미 구매했거나 현금이 부족해서 땅을 구매할 수 없는 경우에는 아무것도 구매하지 않은 것으로 간주하고 게임을 계속 진행한다.
-
황금 열쇠는 다음과 같은 종류로 이루어져 있다.
- 은행에서 돈 받기
- 은행에 돈 주기
- 사회복지기금에 돈 기부하기
- 특정 칸으로 이동
-
황금 열쇠에서 특정 칸으로 이동하게 되는 경우
- 항상 정방향( → → → ...)으로 이동한다.
- 이동하는 동안 지나치는 칸에서는 아무 일도 일어나지 않는다.
- 이동하고 나서 특정 칸에서 일어나야 할 일들(땅 구매, 우주여행 등)이 그대로 일어남에 유의해야 한다.
- 시작 칸을 지나는 경우에는 월급도 받게 된다.
- 황금 열쇠로 인해서 황금 열쇠 칸으로 이동하는 경우는 없음이 보장된다.
-
모든 턴이 지났을 때 구매하지 않은 도시 칸이 남아 있지 않다면 유틸이 승리하고, 그렇지 않다면 패배한다.
-
황금 열쇠에서 돈을 지불하거나 기부해야 하는데 현금이 부족한 경우, 유틸이 패배한다. 도시 칸의 땅을 모두 구매했더라도 모든 턴이 지나기 전에 현금이 부족하면 패배할 수 있음을 유의하라.
각 칸에 대한 정보와 황금 열쇠 리스트는, 게임 시작 시점에 주어지고, 정확히 그 순서대로 뽑히게 된다. 모든 황금 열쇠를 사용한 경우에는 리스트의 처음부터 다시 뽑게 된다.
입력
첫 번째 줄에는 보드의 크기 , 시작 시 가지는 돈 , 시작점을 지나면 받게 되는 월급 , 황금 열쇠 카드의 개수 가 주어진다. (, , )
그다음 개의 줄에는 다음과 같이 황금 열쇠 카드의 정보가 주어진다. 먼저 입력되는 카드일수록 먼저 뽑히게 된다. (, )
1: 은행에서 원을 받는다.2: 은행에 원을 준다.3: 사회복지기금에 원을 기부한다.4: 앞으로 칸 이동한다.
그다음 개의 줄에는 차례대로 특수 칸이 아닌 것들의 정보가 입력된다. 황금 열쇠 칸이면 G가, 아닌 경우에는 L과 땅 가격 가 공백을 사이에 두고 주어진다. ()
그다음으로 게임을 하는 동안 던지는 주사위의 횟수 가 주어진다. ()
그다음 개의 줄에는 차례대로 주사위 두 개의 눈이 공백을 두고 주어진다. 주사위의 눈은 에서 사이이다.
출력
유틸이 혼자 하는 부루마불에서 이겼다면 WIN을, 졌다면 LOSE를 출력한다.