만드는 중입니다

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

치팅 방지

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

요약
같은 반 학생끼리의 최소 거리가 최대가 되도록 한 줄의 좌석에 반 번호를 배치하고, 그 수열을 출력합니다.
난이도

보통10점 중 6점

유형
그리디, 정렬, 수학
정답자
아직 제출이 없습니다

문제

한과영 학생들이 정보과학2 시험을 치기 위해 일렬로 앉아 있다. 각 학생은 1반부터 N반 중 한 반에 소속되어 있다. 같은 반 학생끼리 너무 가까이 앉으면 치팅을 할 수 있다.

양의 정수 K1,K2,⋯ ,KNK_1, K_2, \cdots, K_N이 주어진다. KiK_i는 ii반에 속한 학생의 수이다. 학생들을 잘 정렬하여 같은 반에 속한 임의의 두 학생 사이 거리의 최솟값을 최대화하려고 한다. 조건을 만족하는 정렬 방법을 찾아라. 정확히는, 왼쪽에서 ii번째로 앉는 학생의 반 번호를 ii번째 원소로 하는 수열 XX를 찾아라.

예를 들어 N=3N=3이고 K1=1,K2=2,K3=3K_1=1, K_2=2, K_3=3인 경우를 보자. 이는 1반 학생이 1명, 2반 학생이 2명, 3반 학생이 3명 있다는 뜻이다.

이 경우 X=[3,2,3,1,3,2]X=[3, 2, 3, 1, 3, 2]은 하나의 답이 될 수 있다. Xi=XjX_i = X_j를 만족하는 두 정수 ii, jj에 대해 ∣i−j∣|i-j|의 최솟값이 2이므로, 같은 반 학생 사이 거리의 최솟값은 2이다. 이 값이 2보다 큰 정렬 방법은 존재하지 않는다는 것을 증명할 수 있다.

입력

첫 번째 줄에 정수 NN이 주어진다.

두 번째 줄에 NN개의 정수 K1,K2,⋯ ,KNK_1, K_2, \cdots, K_N이 주어진다.

출력

조건을 만족하는 수열 XX의 정수 sum(K)\mathrm{sum}(K)개 X1,X2,⋯ ,Xsum(K)X_1, X_2, \cdots, X_{\mathrm{sum}(K)}을 출력한다.

답이 여러 개 존재한다면 아무거나 출력해도 상관없다.

제한

  • 1≤N≤1051 \leq N \leq 10^5
  • 1≤sum(K)≤1051 \leq \mathrm{sum}(K) \leq 10^{5}

예제2

  1. 예제 1

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

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