카드 쌓기
시간 제한1초메모리 제한128 MB
카드를 한 장 나눠 줄 때마다 위의 P장을 아래로 옮기는 규칙으로 덱을 돌릴 때, 베시가 받게 되는 원래 위치들을 오름차순으로 구한다.
문제
베시는 명의 소 친구들과 함께, 즉 모두 명이서 카드 게임을 합니다 (). 카드는 장이며 (, 는 의 배수입니다), 그중 정확히 장이 "좋은" 카드이고 나머지 장은 "나쁜" 카드입니다.
베시는 딜러이고, 당연히 "좋은" 카드를 모두 자기가 가지고 싶어 합니다. 친구들은 베시가 속임수를 쓸까 봐 다음 규칙대로 카드를 나눠 주도록 했습니다.
- 덱의 맨 위 카드를 베시의 오른쪽에 있는 소에게 나눠 준다.
- 카드를 한 장 나눠 줄 때마다, 덱의 맨 위에서 다음 장 ()을 덱의 맨 아래로 옮긴다.
- 반시계 방향으로 각 사람에게 차례대로 계속 나눠 준다.
베시는 오른쪽 소부터 나눠 주기 시작하고 자신은 반시계 방향 순서에서 가장 마지막에 있으므로, 나눠 주는 카드 중 매 번째 카드를 받습니다.
카드는 처음 덱의 맨 위에서부터 번으로 번호가 매겨져 있습니다. 베시가 "좋은" 카드를 모두 받으려면 처음 덱의 어느 위치에 "좋은" 카드를 놓아야 하는지 구하세요.
입력
첫째 줄에 세 정수 , , 가 공백으로 구분되어 주어진다.
출력
"좋은" 카드를 놓아야 할 위치(처음 덱의 맨 위에서부터 센 번호)를 오름차순으로 한 줄에 하나씩 총 개 출력한다. 이렇게 놓으면 규칙대로 카드를 모두 나눠 주었을 때 베시가 모든 좋은 카드를 받게 된다.
힌트
, , 인 경우를 살펴봅시다. 베시는 카드를 한 장 나눠 줄 때마다 맨 위 두 장을 덱의 맨 아래로 옮깁니다.
처음 덱의 , , 번 위치에 "좋은" 카드를 놓으면 됩니다. 카드가 나눠지는 과정은 다음과 같습니다 (모든 숫자는 처음 덱에서의 위치입니다).
결국 베시는 , , 번 위치에 놓았던 "좋은" 카드를 모두 갖게 됩니다.