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

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

요세푸스

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

요약
각 k에 대해, 원형으로 배치된 k명의 선한 사람보다 k명의 악한 사람을 먼저 모두 처형하는 가장 작은 m을 구한다.
난이도

보통10점 중 5점

유형
시뮬레이션, 구현, 완전 탐색, 수학
정답자
아직 제출이 없습니다

문제

요세푸스 문제는 널리 알려진 문제이다. 원래 문제를 처음 접하는 사람을 위해 설명하면 다음과 같다. 1,2,…,n1, 2, \ldots, n번으로 번호가 매겨진 nn명이 원을 이루어 서 있고, mm번째 사람마다 처형되며, 마지막까지 살아남는 단 한 명만 목숨을 건진다. 요세푸스는 영리하여 마지막까지 남을 위치를 골라 자신의 목숨을 구했고, 그 사건에 대한 이야기를 우리에게 전할 수 있었다. 예를 들어 n=6n = 6, m=5m = 5이면 사람들은 5,4,6,2,35, 4, 6, 2, 3의 순서로 처형되고 11번이 살아남는다.

이제 착한 사람 kk명과 나쁜 사람 kk명이 있다고 하자. 원에서 앞쪽 kk명은 착한 사람이고, 뒤쪽 kk명은 나쁜 사람이다. 첫 번째 착한 사람이 처형되기 전에 모든 나쁜 사람이 먼저 처형되도록 하는 가장 작은 mm을 구하여라.

입력

입력은 여러 줄로 이루어지며, 각 줄에는 정수 kk가 하나씩 주어진다. 마지막 줄에는 00이 주어진다. 0<k<140 < k < 14임이 보장된다.

출력

입력의 각 kk에 대응하는 mm을 한 줄에 하나씩 출력한다.

예제3

  1. 예제 1

    입력
    3
    4
    0
    
    예상 출력
    5
    30
    
  2. 예제 2

    입력
    1
    0
    
    예상 출력
    2
    
  3. 예제 3

    입력
    2
    0
    
    예상 출력
    7