요세푸스 문제 3

면접 대비

시간 제한1초메모리 제한16 MB

요약
원을 이룬 N명 중에서 K번째 사람을 순서대로 제거하고 마지막에 남는 사람의 번호를 구합니다.
난이도

보통10점 중 4점

유형
수학, 동적 계획법
정답자
아직 제출이 없습니다

문제

요세푸스 문제는 다음과 같다.

1번부터 NN번까지 NN명이 원을 이루어 앉아 있고, 양의 정수 KK (K≤NK \le N)가 주어진다. 순서대로 세어 KK번째 사람을 제거한다. 한 사람이 제거되면 남은 사람으로 이루어진 원을 따라 이 과정을 계속한다. 이 과정은 NN명이 모두 제거될 때까지 이어지며, 사람이 제거되는 순서를 (N,K)(N, K)-요세푸스 순열이라고 한다. 예를 들어 (7,3)(7, 3)-요세푸스 순열은 <3, 6, 2, 7, 5, 1, 4>이다.

NN과 KK가 주어지면 마지막까지 남는 사람의 번호를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 NN과 KK가 공백을 사이에 두고 순서대로 주어진다. (1≤K≤N≤5,000,0001 \le K \le N \le 5{,}000{,}000)

출력

첫째 줄에 마지막까지 남는 사람의 번호를 출력한다.

예제1

  1. 예제 1

    입력
    7 3
    
    예상 출력
    4