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

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

Marked-Numbered

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

요약
DFS 순서대로 주어진 보고서 항목의 글머리 기호 번호를 보고 올바른 트리가 존재하는지 판정하고, 글머리 번호 형태로 바꿨을 때의 번호를 출력한다.
난이도

보통10점 중 6점

유형
스택, 트리, 구현, 그리디
정답자
아직 제출이 없습니다

문제

코치 희승이는 FXC 나라 육상 국가대표 선발 보고서를 작성하였다. 희승이는 보고서를 작성할 때 목차를 육상협회에서 사용하는 글머리 기호 형태로 작성하였다. 희승이가 FXC 나라 문화체육관광부로 공문을 보내려고 봤더니, 문화체육관광부에서는 공문을 작성할 때 글머리 번호 형태로 작성한다. 따라서 희승이는 보고서를 글머리 번호 형태로 바꾼 사본을 만들어서 문화체육관광부로 보내려고 한다.

보고서 목차는 위 그림의 트리와 같이 도식화할 수 있다. 트리에서 루트를 제외한 모든 노드는 보고서의 항목과 일대일 대응된다. 트리에서 깊이 우선 탐색(DFS)을 했을 때 방문하는 순서대로 트리 노드에 색인을 매길 수 있는데, 보고서에서 먼저 등장하는 항목이 더 작은 색인을 가진다. 보고서를 글머리 기호 형태로 작성한다면 각 항목의 번호는 항목과 대응하는 노드의 레벨(루트 노드와의 거리)과 같다. 한편 보고서를 글머리 번호 형태로 작성한다면 각 항목의 번호는 항목과 대응하는 노드보다 색인이 작은 형제 노드의 수에 11을 더한 값과 같다.

희승이가 글머리 기호 형태로 작성한 보고서 목차가 주어지면 이를 글머리 번호 형태로 변환하는 프로그램을 작성하여라.

입력

첫 번째 줄에 보고서 목차 내 항목의 개수 CC가 주어진다.

두 번째 줄에는 글머리 기호 형태로 작성된 보고서에서 i+1i+1번째(0≤i<C0 \leq i < C) 항목의 번호 M_iM\_i에 해당하는 CC개의 정수가 주어진다.

출력

만약 주어진 보고서가 올바른 보고서가 아닌 경우 첫 번째 줄에 -1을 출력한다. 보고서가 올바르다면 항목의 번호가 입력과 동일하게 매겨지도록 보고서와 대응되는 트리를 만들 수 있다.

주어진 보고서가 올바른 보고서라면 첫 번째 줄에 CC개의 정수 N_iN\_i를 출력한다. N_iN\_i는 주어진 보고서를 글머리 번호 형태로 바꿨을 때 i+1i+1번째(0≤i<C0 \leq i < C) 항목의 번호를 의미한다.

가능한 정답이 여러 가지라면 그중 아무거나 출력한다.

예제3

  1. 예제 1

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

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

    입력
    5
    1 3 5 7 9
    
    예상 출력
    -1