Informatica Online Judge

  Josephus Problem [0780 / 030C]

Time Limit(Test case) : 1000(ms)
Number of users who solved : 121   Total Tried : 191


The Champion of this Problem (C++) : comkiwer - 0ms / 92byte
My Best Submission (C++) : N/A

[]

Background

Josephus 문제는 다음과 같이 정의된다.

1번부터 N번까지 N명의 사람이 빙 둘러서 있고 양의 정수 2가 주어져 있다. 이제 순서대로 매 2번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다.

이 과정은 N명의 사람 중에서 한명이 남을 때까지 계속된다. N이 주어지면 최후로 남는 한명의 번호를 출력하는 프로그램을 작성하시오.

Input

첫째 줄에 N이 주어진다. (1≤N≤10,000,000)

Output

최후에 남는 한명의 번호를 출력한다.

IO Example

입력
5

출력
3

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]