영화 수집

면접 대비

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

요약
DVD 더미에서 영화를 시청할 때마다 그 위에 쌓여 있던 DVD 개수를 출력하고 시청한 DVD를 맨 위로 옮기는 문제입니다.
난이도

보통10점 중 4점

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

문제

상근이는 영화 DVD 수집가이다. 상근이는 DVD를 하나의 더미로 차곡차곡 쌓아서 보관한다.

보고 싶은 영화가 생기면, 그 DVD의 위치를 찾은 뒤 더미가 무너지지 않도록 조심스럽게 DVD를 빼낸다. 영화를 다 본 다음에는 그 DVD를 더미의 맨 위에 다시 올려놓는다.

상근이는 DVD가 매우 많아서 영화의 위치를 찾는 데 시간이 오래 걸린다. 어떤 DVD의 위치는, 그 DVD 위에 놓여 있는 DVD의 개수만 알면 쉽게 알 수 있다. 각 영화는 DVD 표지에 적힌 번호로 구별한다.

상근이가 영화를 볼 때마다, 그 DVD 위에 몇 개의 DVD가 놓여 있었는지를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수가 주어진다. 테스트 케이스의 개수는 100개를 넘지 않는다.

각 테스트 케이스의 첫째 줄에는 상근이가 가진 영화의 수 nn과 보려고 하는 영화의 수 mm이 주어진다. (1≤n,m≤100,0001 \le n, m \le 100{,}000)

둘째 줄에는 보려고 하는 영화의 번호가 보는 순서대로 mm개 주어진다.

영화의 번호는 11부터 nn까지이다. 처음에 DVD는 번호가 커지는 순서로 쌓여 있으며, 맨 위에 있는 DVD의 번호는 11이다.

출력

각 테스트 케이스마다 한 줄에 mm개의 정수를 공백으로 구분하여 출력한다.

ii번째 수는, ii번째로 영화를 볼 때 그 DVD 위에 놓여 있던 DVD의 개수이다. 상근이는 영화를 볼 때마다 그 DVD를 더미의 맨 위에 다시 올려놓는다.

예제7

  1. 예제 1

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

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

    입력
    1
    5 4
    5 5 5 5
    
    예상 출력
    4 0 0 0
    
  4. 예제 4

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

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

    입력
    1
    10 6
    10 1 10 5 5 2
    
    예상 출력
    9 1 1 5 0 3
    
  7. 예제 7

    입력
    3
    2 2
    2 1
    1 1
    1
    3 4
    3 3 1 2
    
    예상 출력
    1 1
    0
    2 0 1 2