M*A*S*H

면접 대비

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

요약
P명이 줄을 선 상태에서 카드에 적힌 수만큼 세어 사람을 제거하는 과정을 X명이 남을 때까지 반복하고, 남은 사람의 원래 번호를 오름차순으로 출력한다.
난이도

보통10점 중 4점

유형
시뮬레이션, 배열, 구현, 큐
정답자
아직 제출이 없습니다

문제

한국 전쟁 당시 제4077 이동 육군 외과병원(MAS*H)에 배속된 클링거 상병은 집으로 돌아가기 위해서라면 무슨 일이든 하려 한다. 군은 추첨을 열어 본국의 신병 모집 순회에 참여할 행운의 인원 XX명을 뽑는데, 클링거는 그 안에 들기 위해 당신의 도움이 필요하다.

추첨은 다음과 같이 진행된다. 부대원 PP명이 한 줄로 서서 맨 앞부터 11번, 22번, …, PP번으로 번호를 매긴다. 카드 한 벌이 세는 방식을 결정한다. 맨 위 카드를 한 장 뽑으면 그 값 CC(1≤C≤111 \le C \le 11인 정수)가 이번 한 바퀴의 세기 한도가 된다. 줄에 남아 있는 첫 번째 사람부터 시작해 사람들을 1,2,3,…1, 2, 3, \dots으로 센다. 세는 수가 CC에 도달할 때마다 그 사람은 줄에서 빠지고, 곧바로 다음 사람부터 다시 11부터 센다. 줄의 끝(남아 있는 마지막 사람)에 도달하면 그 시점의 수와 상관없이 이번 바퀴는 끝난다. 다음 카드를 뽑아 남은 줄의 첫 번째 사람부터 다시 11부터 세기 시작한다. 한 바퀴마다 카드는 정확히 한 장씩 사용된다.

줄에 정확히 XX명이 남는 순간 그 사람들이 당첨자이며 과정은 멈춘다. 카드 한 벌과 사람 수 PP가 주어질 때, 당첨되는 자리 번호를 구하라. 당첨자는 처음 2020장의 카드 안에서 반드시 결정됨이 보장된다.

예를 들어 사람이 1010명, 당첨 인원이 22명이고 카드가 3,5,4,3,23, 5, 4, 3, 2라면 최종 생존자는 11번과 88번 자리에 있게 된다.

입력

입력은 하나 이상의 추첨으로 이루어지며 입력의 끝까지 읽는다. 각 추첨은 2222개의 정수 묶음으로 주어진다.

  • 첫 번째 정수 PP(1≤P≤501 \le P \le 50)는 줄에 선 사람 수이다.
  • 두 번째 정수 XX(1≤X≤P1 \le X \le P)는 뽑을 당첨 자리의 수이다.
  • 이어지는 2020개의 정수는 덱의 처음 2020장의 카드 값이며, 각 값은 11 이상 1111 이하이다.

모든 추첨에서 당첨자는 이 2020장 안에서 결정됨이 보장된다.

출력

각 추첨에 대해 주어진 순서대로 Selection #i 한 줄을 출력한다. 여기서 ii는 11부터 세는 추첨의 순번이다. 그다음 줄에는 당첨된 자리 번호를 오름차순(줄에 남은 순서)으로, 각 번호 뒤에 공백 하나를 붙여 출력한다. 추첨 사이에 빈 줄은 출력하지 않는다.

예제5

  1. 예제 1

    입력
    10 2 3 5 4 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
    
    예상 출력
    Selection #1
    1 8 
    
  2. 예제 2

    입력
    5 5 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
    
    예상 출력
    Selection #1
    1 2 3 4 5 
    
  3. 예제 3

    입력
    1 1 7 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
    
    예상 출력
    Selection #1
    1 
    
  4. 예제 4

    입력
    7 6 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
    
    예상 출력
    Selection #1
    1 2 4 5 6 7 
    
  5. 예제 5

    입력
    10 2 3 5 4 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
    6 3 2 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
    
    예상 출력
    Selection #1
    1 8 
    Selection #2
    1 3 5