Snakes&Snakes
면접 대비시간 제한1초메모리 제한1024 MB
6이 나오면 같은 턴에 다시 굴릴 수 있는 규칙에서, 말을 1번 칸에서 N번 칸까지 보내는 최소 턴 수를 구합니다.
문제
바딤에게 Snakes&Snakes 게임용 일차원 보드가 있다. 보드는 왼쪽에서 오른쪽으로 1번부터 번까지 번호가 붙은 개의 칸으로 이루어져 있다. 처음에 말은 1번 칸에 놓여 있다. 게임의 목표는 번 칸에 도달하는 것이다. 1번과 번을 제외한 각 칸 에는 음이 아닌 정수 가 대응한다. 이면 번 칸은 비어 있다. 그렇지 않으면 그 칸에 텔레포트가 설치되어 있어 말을 왼쪽으로 칸 옮긴다. 1번 칸과 번 칸은 비어 있다고 보장된다.
한 번의 차례는 다음 알고리즘으로 진행된다.
- 플레이어가 6면체 주사위를 던진다. 주사위 눈이 이면 말을 오른쪽으로 칸 옮기되, 말은 번 칸보다 오른쪽으로 갈 수 없다. 즉 말이 번 칸에 있었다면 번 칸으로 옮겨진다.
- 말이 번 칸에 도착하면 플레이어가 이긴다.
- 말이 텔레포트가 없는 번 칸()에 도착하면 4단계로 넘어간다. 그렇지 않으면 말을 칸 왼쪽, 즉 번 칸으로 옮기고 3단계를 반복한다.
- 1단계에서 주사위 눈이 6이 나왔다면, 플레이어는 현재 차례를 끝내지 않고 1단계부터 모든 동작을 다시 할 수 있다. 그렇지 않으면 현재 차례가 끝난다.
마고가 바딤에게 이 게임을 이기는 데 필요한 최소 차례 수를 묻는다. 확률이 아주 낮더라도 상관없이 구한다. 바딤이 이 질문에 답하도록 도와라.
입력
첫 줄에 보드 크기 이 주어진다 ().
둘째 줄에는 보드를 나타내는 개의 정수 가 주어진다 (, ).
출력
이기는 데 필요한 최소 차례 수를 한 줄에 출력한다. 번 칸에 도달할 수 없으면 을 출력한다.