atcoder#ARC128E. [ARC128E] K Different Values

[ARC128E] K Different Values

配点 : 800800

問題文

長さ NN の整数列 A=(A1,A2,,AN)A=(A_1,A_2,\cdots,A_N),及び整数 KK が与えられます.

以下の条件を両方満たす整数列 xx を作ることを考えます.

  • 各整数 ii (1iN1 \leq i \leq N) について,xx はちょうど AiA_i 個の ii を含む. また逆に,それ以外の整数を含まない.
  • xx の中で連続するどの KK 個を見ても,その KK 個の値はすべて異なる.

条件を満たす xx を作ることが可能かどうか判定し,可能な場合は条件を満たす中で辞書順最小の xx を求めてください.

制約

  • 2KN5002 \leq K \leq N \leq 500
  • 1Ai1 \leq A_i
  • 1iNAi200000\sum_{1 \leq i \leq N} A_i \leq 200000
  • 入力される値はすべて整数である

入力

入力は以下の形式で標準入力から与えられる.

NN KK

A1A_1 A2A_2 \cdots ANA_N

出力

条件を満たす数列 xx が作ることが不可能な場合,-1 と出力せよ. 可能な場合,辞書順最小の xx を出力せよ.

3 3
2 2 1
1 2 3 1 2

x=(1,2,3,1,2),(2,1,3,2,1)x=(1,2,3,1,2),(2,1,3,2,1) の二つが条件を満たし,その中で辞書順最小の (1,2,3,1,2)(1,2,3,1,2) が答えになります.

3 2
2 1 2
1 2 3 1 3
3 3
1 3 3
-1