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

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

가장 긴 증가하는 부분 수열

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

요약
각 위치 i에서 끝나는 최장 증가 부분수열의 길이가 정확히 f_i가 되도록 1부터 n까지의 순열을 구성한다.
난이도

보통10점 중 7점

유형
그리디, 정렬, 배열, 구현
정답자
아직 제출이 없습니다

문제

f1,f2,…,fnf_1, f_2, \ldots, f_n이 주어진다. 1,2,…,n1, 2, \ldots, n의 순열 p1,p2,…,pnp_1, p_2, \ldots, p_n 중에서, 각 ii에 대해 pip_i로 끝나는 가장 긴 순증가 부분 수열의 길이가 fif_i인 것을 찾아라.

입력

첫째 줄에 정수 nn이 주어진다. (1≤n≤1051 \leq n \leq 10^5)

둘째 줄에 nn개의 정수 f1,f2,…,fnf_1, f_2, \ldots, f_n이 주어진다. (1≤fi≤n1 \leq f_i \leq n) 주어진 입력에 대해 조건을 만족하는 순열 p1,p2,…,pnp_1, p_2, \ldots, p_n이 적어도 하나 존재한다.

출력

첫째 줄에 nn개의 정수 p1,p2,…,pnp_1, p_2, \ldots, p_n을 출력한다. 이 수들은 1,2,…,n1, 2, \ldots, n의 순열이어야 한다. 가능한 답이 여러 개라면 그중 아무거나 출력한다.

예제2

  1. 예제 1

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

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