그리고 하나가 남았다
면접 대비시간 제한1초메모리 제한128 MB
원형으로 배열된 돌들을 정해진 시작점과 간격으로 제거해 나가는 조세퍼스 유형 게임에서 마지막에 남는 돌의 번호를 각 테스트케이스마다 구합니다.
문제
돌 치우기 게임을 해 보자.
처음에 그림 1과 같이 부터 까지 번호가 매겨진 개의 돌이 시계 방향으로 원을 이루어 놓여 있다. 그리고 두 수 와 이 주어진다. 이 상태에서 돌이 하나만 남을 때까지 아래 규칙에 따라 돌을 하나씩 치운다.
- 스텝 1: 돌 을 치운다.
- 스텝 (): 스텝 에서 치운 돌의 위치에서 시작하여, 남은 돌 중 시계 방향으로 번째에 있는 돌을 치운다. 즉, 개의 돌을 건너뛴 뒤에 있는 돌을 치우며, 이미 치운 돌은 건너뛰는 횟수에 세지 않는다.
스텝 1, 스텝 2, 스텝 3, ...을 순서대로 실행하여 돌이 하나만 남을 때까지 반복하면, 그 마지막으로 남은 돌이 게임의 답이 된다.
예를 들어 그림 1에서와 같이 , , 인 경우 답은 이다.
그림 1: 게임 예제
- 초기 상태: 8개의 돌이 시계 방향으로 놓여 있다.
- 스텝 1: 이므로 돌 3이 치워진다.
- 스텝 2: 3에서 시작하고 이므로 돌 4, 5, 6, 7 (총 4개)을 건너뛰고 돌 8을 치운다.
- 스텝 3: 8에서 시작하여 돌 1, 2, 4, 5를 건너뛰고 돌 6을 치운다. 돌 3은 이미 치워졌으므로 무시되어 건너뛰는 횟수에 포함되지 않음에 주의한다.
- 스텝 4~7: 돌이 하나만 남을 때까지 계속한다.
- 마지막으로 남은 돌이 1이므로 답은 1이다.
입력
입력은 여러 개의 데이터 줄로 이루어지며, 각 데이터 줄은 다음과 같이 세 개의 수로 이루어진다.
n k m
마지막 데이터 줄 다음에는 세 개의 으로 이루어진 줄이 온다. 각 수는 다음 범위를 만족한다.
, ,
데이터 줄의 개수는 100보다 작다.
출력
각 데이터 줄에 대해 마지막으로 남은 돌의 번호를 출력한다.