아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

위기일발

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

요약
원에 앉은 n명을 1번부터 세어 두 번째 사람마다 제거할 때 마지막에 남는 사람의 번호를 구한다. n은 xyez 형식으로 주어진다.
난이도

보통10점 중 5점

유형
수학, 재귀, 시뮬레이션, 비트 연산
정답자
아직 제출이 없습니다

문제

플라비우스 요세푸스와 그의 동료 반란군 40명이 로마군에게 포위되어 궁지에 몰렸다. 동료들은 항복하느니 자결하기로 뜻을 모았고, 원을 이루어 서서 세 번째 사람마다 차례로 처형하며 아무도 남지 않을 때까지 원을 돌기로 했다. 스스로 목숨을 끊고 싶지 않았던 요세푸스는 마지막까지 살아남는 위치를 미리 계산해 두었다(그리고 지켜보는 사람이 아무도 없었으므로 자결하지 않았다).

여기서는 두 번째 사람마다 원에서 빠지는 변형 게임을 다룬다. 이제는 컴퓨터가 있으므로 참가자는 41명보다 훨씬 많을 수 있다. 안전한 위치를 계산하라. 여러분의 프로그램으로 이 대회의 우승자를 계산하게 될지도 모르니 조심하라!

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 케이스는 게임에 참가하는 사람 수 nn을 나타낸다. 난이도를 높이기 위해 nn은 항상 xyez 형식으로 주어진다. 의미는 다음과 같다: nn을 십진수로 적었을 때 첫 번째 자리 숫자가 xx, 두 번째 자리 숫자가 yy이며, 그 뒤에 00이 zz개 붙는다. 즉 n=(10x+y)⋅10zn = (10x + y)\cdot 10^z이다. 범위는 0≤x,y≤90 \le x, y \le 9이고 00의 개수는 0≤z≤60 \le z \le 6이다. n>0n > 0임이 보장된다. 마지막 테스트 케이스 다음에는 문자열 00e0이 온다.

출력

각 테스트 케이스마다 살아남는 사람의 위치를 한 줄에 출력한다. 참가자는 11번부터 nn번까지 번호가 매겨져 있으며, 세기는 1번 사람부터 시작한다. 따라서 가장 먼저 빠지는 사람은 2번이다. 예를 들어 원에 5명이 있으면 2,4,1,52, 4, 1, 5 순서로 빠지고 3번이 살아남는다.

예제1

  1. 예제 1

    입력
    05e0
    01e1
    42e0
    66e6
    00e0
    
    예상 출력
    3
    5
    21
    64891137