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

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

쥐덫 (큰 입력)

시간 제한5초메모리 제한512 MB

요약
크기가 K인 완벽한 Mousetrap 덱에서 질의한 각 위치에 있는 카드 번호를 출력한다.
난이도

보통10점 중 7점

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

문제

쥐덫은 혼자서 하는 카드 게임이다. 카드는 1부터 KK까지 번호가 붙은 KK장이고, 뒷면이 위로 오도록 한 덩이로 쌓여 있다. 맨 위 카드를 뒤집어 번호를 확인한 다음 그 카드를 맨 아래로 옮기고, 카드를 몇 장 확인했는지 센다. 처음 확인한 카드의 셈은 1이다. 확인한 카드의 번호가 지금 셈과 같으면 그 카드를 덱에서 빼내고 셈을 되돌린다. 그 뒤에 확인하는 카드의 셈은 다시 1이다. 셈이 K+1K+1이 되면 패배한다. 덱의 카드가 모두 없어지면 승리한다.

위에서부터 2, 5, 3, 1, 4 순서로 놓인 5장 덱으로 게임을 해 본다. 셈 1에서 2를, 셈 2에서 5를, 셈 3에서 3을 확인한다. 번호와 셈이 같으므로 3을 빼내고 셈을 되돌린다. 남은 네 장은 위에서부터 1, 4, 2, 5다. 셈 1에서 1을 확인해 이 카드도 빼낸다. 같은 방식으로 2, 4, 5를 차례로 빼내면 승리한다.

어떤 덱으로 게임을 해서 승리하고 빠져나온 카드의 번호가 1, 2, …\dots, KK 순서로 커지면 그 덱을 완벽한 덱이라고 한다. 카드가 4장일 때 1, 4, 2, 3 덱은 완벽하다. 카드가 1, 2, 3, 4 순서로 빠져나오기 때문이다. 모든 KK에 대해 크기가 KK인 완벽한 덱은 정확히 하나 있으므로, 각 자리에 놓이는 카드도 하나로 정해진다.

크기가 KK인 완벽한 덱에서 몇 개의 자리에 어떤 카드가 놓이는지 구한다.

입력

첫째 줄에 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스는 두 줄이다. 첫째 줄에 덱의 카드 수 KK가 주어진다. 둘째 줄에 정수 nn이 주어지고, 이어서 nn개의 정수 d1,d2,…,dnd_1, d_2, \dots, d_n이 주어진다. 이 값은 물어보는 자리 번호다. 자리 1은 덱의 맨 위 카드, 자리 KK는 맨 아래 카드다.

  • 1≤T≤101 \le T \le 10
  • 1≤K≤1061 \le K \le 10^6
  • 1≤n≤1001 \le n \le 100
  • 1≤di≤K1 \le d_i \le K

한 테스트 케이스 안의 자리 번호는 서로 다를 필요도, 정렬되어 있을 필요도 없다.

출력

각 테스트 케이스마다 한 줄을 출력한다. 먼저 Case #x: 를 출력하고, 이어서 정수 nn개 k1,k2,…,knk_1, k_2, \dots, k_n을 공백 하나로 구분해 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, kik_i는 크기가 KK인 완벽한 덱에서 자리 did_i에 놓인 카드의 번호다. 콜론 뒤에도 공백을 하나만 둔다.

예제2

  1. 예제 1

    입력
    2
    5
    5 1 2 3 4 5
    15
    4 3 4 7 10
    
    예상 출력
    Case #1: 1 3 2 5 4
    Case #2: 2 8 13 4
    
  2. 예제 2

    입력
    4
    1
    1 1
    2
    2 1 2
    3
    3 1 2 3
    4
    4 1 2 3 4
    
    예상 출력
    Case #1: 1
    Case #2: 1 2
    Case #3: 1 3 2
    Case #4: 1 4 2 3