만드는 중입니다

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

농부 존의 가장 좋아하는 순열

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

요약
양 끝에서 원소를 제거하며 남긴 힌트 수열이 주어질 때, 이를 만족하는 사전순으로 가장 작은 순열을 구하거나 불가능하면 -1을 출력합니다.
난이도

보통10점 중 7점

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

문제

농부 존은 길이가 NN인 순열 pp를 가지고 있다 (2≤N≤1052 \leq N \leq 10^5). pp에는 1부터 NN까지의 정수가 각각 정확히 한 번씩 들어 있다. 농부 네이치가 헛간에 침입해 pp를 분해해 버렸다. 너무 가혹하게 굴지 않으려고 네이치는 존이 pp를 복원하는 데 도움이 될 힌트를 몇 개 적어 두었다. pp에 원소가 두 개 이상 남아 있는 동안 네이치는 다음을 수행한다.

pp에 남은 원소를 p1′,p2′,…,pn′p'_1, p'_2, \dots, p'_n이라 하자.

  • p1′>pn′p'_1 > p'_n이면 p2′p'_2를 적고 p1′p'_1을 순열에서 뺀다.
  • 그렇지 않으면 pn−1′p'_{n-1}을 적고 pn′p'_n을 순열에서 뺀다.

마지막에 네이치는 N−1N-1개의 정수 h1,h2,…,hN−1h_1, h_2, \dots, h_{N-1}을 이 순서대로 적게 된다. 존은 hh가 주어졌을 때 이 힌트와 일치하는 사전순으로 가장 작은 pp를 복원하고 싶어 한다. 일치하는 pp가 없다면 네이치가 실수한 것이다.

입력

입력은 TT개의 독립된 테스트 케이스로 구성된다 (1≤T≤101 \le T \le 10). 각 테스트 케이스는 두 줄이다. 첫 줄에는 NN이 주어진다. 둘째 줄에는 N−1N-1개의 정수 h1,h2,…,hN−1h_1, h_2, \dots, h_{N-1} (1≤hi≤N1 \le h_i \le N)이 주어진다.

출력

테스트 케이스마다 한 줄씩 총 TT줄을 출력한다. hh와 일치하는 1부터 NN까지의 순열 pp가 있으면 사전순으로 가장 작은 pp를 출력한다. 없으면 −1-1을 출력한다.

예제1

  1. 예제 1

    입력
    5
    2
    1
    2
    2
    4
    1 1 1
    4
    2 1 1
    4
    3 2 1
    
    예상 출력
    1 2
    -1
    -1
    3 1 2 4
    1 2 3 4