섞인 카드 뭉치
시간 제한2초메모리 제한512 MB
서로 다른 카드 P장으로 이루어진 덱에서 주어진 교차 셔플을 반복했을 때 덱이 처음의 정렬된 순서로 돌아오는 최소 횟수를 구한다.
문제
카드 뭉치에는 짝수 개인 장의 카드 이 들어 있고, 모두 서로 다르다 (). 처음에 뭉치는 완전히 정렬된 상태다. 첫 번째 카드가 , 두 번째 카드가 이고, 이런 식으로 마지막 카드가 이다.
딜러는 다음 두 단계로 이루어진 섞기를 반복한다.
- 뭉치를 절반으로 나눈다.
- 두 절반의 카드를 번갈아 끼워 넣는다. 1단계를 시작할 때의 카드 순서가 이면, 2단계가 끝난 뒤의 순서는 이 된다.
카드 뭉치의 카드 수가 주어질 때, 뭉치가 처음의 정렬된 순서로 돌아오려면 이 섞기를 몇 번 반복해야 하는지 구하는 프로그램을 작성하라.
입력
첫째 줄에 카드 뭉치의 카드 수를 나타내는 짝수 정수 가 주어진다 (). 는 위 설명의 에 해당한다.
출력
뭉치가 다시 정렬된 순서가 되기까지 섞기를 반복해야 하는 최소 횟수를 한 줄에 정수 하나로 출력한다.