Informatica Online Judge

  조세푸스순열 [1633 / 0661]

Time Limit(Test case) : 2000 (ms)
Number of users who solved : 538   Total Tried : 1274


The Champion of this Problem (C++) : gs22089 - ms / 289byte
My Best Submission (C++) : N/A

[koistudy.net (unkonwn)]

Background

조세푸스 순열은 다음과 같이 정의한다.

n과 k가 자연수이고, k < n이라고 가정한다.

n명이 동그랗게 모여있을 때 1번으로부터 시작하여 순서를 세어 나가서 k번째 사람을 모임에서 제외한다.

남은 n-1명에서 다시 다음 사람부터 순서를 세서 k번째 사람을 모임에서 제외한다.

이것을 아무도 남지 않을 때까지 계속해서 반복한다.

이때 모임에서 제외되는 사람의 순서를 (n, k) 조세푸스 순열이라고 한다.

이 과정은 n명의 사람이 모두 제거될 때까지 계속된다.




예를 들어 n=5, k=2 이면 2,4,1,5,3 의 순서로 제거된다.

조세푸스 순열을 구하는 프로그램을 작성하시오.

Input

n, k를 빈칸을 사이에 두고 순서대로 입력한다. (1<=k<=n<=5000)

Output

조세푸스 순열을 출력한다.

IO Example

<입력예>
5 2

<출력예>
2 4 1 5 3

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