만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

수열 재배열

면접 대비

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

요약
1부터 n까지의 수열에서 각 요청이 지정한 정수를 맨 앞으로 옮기고 나머지 순서는 유지할 때, 모든 요청을 처리한 뒤의 최종 수열을 출력한다.
난이도

보통10점 중 4점

유형
연결 리스트, 구현, 시뮬레이션
정답자
아직 제출이 없습니다

문제

1부터 nn까지의 정수가 차례로 놓인 수열 (1,2,3,…,n)(1, 2, 3, \ldots, n)이 있다. 이어서 요청이 여러 개 주어진다. 각 요청은 수열에 들어 있는 정수 하나를 지정하며, 지정된 정수를 수열의 맨 앞으로 옮긴다. 나머지 원소의 순서는 그대로 둔다. 모든 요청을 주어진 순서대로 처리한 뒤 수열에 놓인 원소의 순서를 구하여라.

입력

입력은 다음 형태의 테스트 케이스 하나로 이루어진다.

n m
e1
.
.
.
em

nn은 수열의 길이다 (1≤n≤2000001 \le n \le 200000). mm은 요청의 개수다 (1≤m≤1000001 \le m \le 100000). 이어지는 mm개의 줄에 요청 e1,…,eme_1, \ldots, e_m이 한 줄에 하나씩 주어진다. 각 요청 eie_i (1≤i≤m1 \le i \le m)는 11 이상 nn 이하의 정수이며, 옮길 원소를 나타낸다. 요청이 가리키는 값은 수열에서의 위치가 아니라 옮길 정수 자체다.

출력

모든 요청을 처리한 뒤의 수열을 출력한다. 원소를 수열에 놓인 순서대로 한 줄에 하나씩 출력한다.

힌트

nn이 55이고 요청이 차례로 44, 22, 55인 경우를 보자. 처음 수열은 (1,2,3,4,5)(1, 2, 3, 4, 5)다. 첫 요청은 정수 44를 맨 앞으로 옮기므로 수열은 (4,1,2,3,5)(4, 1, 2, 3, 5)가 된다. 다음 요청으로 22를 맨 앞으로 옮기면 (2,4,1,3,5)(2, 4, 1, 3, 5)가 되고, 마지막으로 55를 옮기면 (5,2,4,1,3)(5, 2, 4, 1, 3)이 된다.

예제2

  1. 예제 1

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

    입력
    10 8
    1
    4
    7
    3
    4
    10
    1
    3
    
    예상 출력
    3
    1
    10
    4
    7
    2
    5
    6
    8
    9