행사 달력

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

요약
N일짜리 옛 일정과 새 일정이 주어질 때, 각 목표 날짜를 제자리에 놓는 앞부분 뒤집기 요청의 크기를 순서대로 출력한다.
난이도

보통10점 중 4점

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

문제

마케팅 담당자들은 창의적이며 참석해야 하는 회의가 매우 많다. 회사의 월간 일정에는 매달 첫 NN일 각각에 대해 회의가 하나씩 적혀 있다. 각 회의는 음이 아닌 정수로 식별되며, 같은 식별자가 여러 날에 나타날 수도 있다.

현재 일정(이전 순서)을 미리 정해 둔 새 순서로 바꾸어야 한다. 기획 부서가 할 수 있는 유일한 조작은 요청이다. 수 DD를 고르면 첫 DD일의 회의 순서가 통째로 뒤집힌다. 예를 들어 현재 순서가 1 2 3 4 5일 때 D=3D = 3인 요청을 하면 3 2 1 4 5가 된다.

식별자가 중복될 수 있으므로, 등장 순서로 서로 대응시킨다. 어떤 값이 이전 순서에서 왼쪽부터 kk번째로 등장하면, 그 회의는 새 순서에서 같은 값이 왼쪽부터 kk번째로 등장하는 자리로 가야 한다. 이렇게 하면 이전 일정의 각 날마다 1…N1 \ldots N 중 하나의 목표 위치가 유일하게 정해진다.

부서는 항상 다음의 고정된 절차를 따른다. size=N,N−1,…,2\text{size} = N, N-1, \ldots, 2 순서로 다음을 수행한다.

  • 목표 위치가 size\text{size}인 날이 현재 앞에서부터 pp번째에 있다고 하자. 이 날은 항상 첫 size\text{size}일 안에 있다.
  • p=sizep = \text{size}이면 아무 요청도 하지 않는다.
  • 그렇지 않으면, p≠1p \neq 1일 때 먼저 요청 pp(첫 pp일 뒤집기)를 하고, 이어서 요청 size\text{size}(첫 size\text{size}일 뒤집기)를 한다.

이 절차가 발행하는 모든 요청을 순서대로 출력하라.

입력

입력에는 여러 개의 재구성이 들어 있으며, 마지막 재구성 뒤에는 00 하나만 있는 줄이 온다.

각 재구성은 세 줄로 이루어진다. 첫 줄은 고려하는 날 수를 나타내는 정수 NN (1≤N≤301 \le N \le 30)이다. 둘째 줄은 이전 일정, 셋째 줄은 새 일정이며, 각각 공백으로 구분된 NN개의 회의 식별자(음이 아닌 정수)를 담는다. 두 일정은 같은 다중집합을 이루며, 일부 식별자는 여러 번 나타날 수 있다.

출력

각 재구성마다, 절차가 발행하는 요청 번호 D1 D2 … DkD_1\ D_2\ \ldots\ D_k를 공백 하나로 구분해 한 줄에 출력한다 (1≤Di≤N1 \le D_i \le N). 이전 일정과 새 일정이 이미 같으면 절차는 아무 요청도 하지 않으며, 빈 줄을 출력한다.

예제3

  1. 예제 1

    입력
    5
    1 4 8 9 10
    4 8 9 10 1
    0
    
    예상 출력
    5 4
    
  2. 예제 2

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

    입력
    2
    5 9
    9 5
    0
    
    예상 출력
    2