AT_agc046_e [AGC046E] Permutation Cover
Description
[problemUrl]: https://atcoder.jp/contests/agc046/tasks/agc046_e
整数 $ K $ と整数 $ a_1,\dots,\ a_K $ が与えられます。以下を満たす数列 $ P $ が存在するか判定し、存在する場合は辞書順最小のものを求めてください。
- $ P $ のすべての項は $ 1 $ 以上 $ K $ 以下の整数である
- 各 $ i=1,\dots,\ K $ に対し、$ P $ は $ i $ を $ a_i $ 個含む
- $ P $ の各項について、その項を含むある長さ $ K $ の連続する部分列が存在し、$ 1,\dots,\ K $ の並び替えになっている
Input Format
入力は以下の形式で標準入力から与えられる。
> $ K $ $ a_1 $ $ a_2 $ $ \dots $ $ a_K $
Output Format
条件を満たす数列が存在しない場合、`-1` を出力せよ。 そうでない場合、条件を満たす辞書順最小の数列を出力せよ。
Explanation/Hint
### 制約
- $ 1\ \leq\ K\ \leq\ 100 $
- $ 1\ \leq\ a_i\ \leq\ 1000\ \quad\ (1\leq\ i\leq\ K) $
- $ a_1\ +\ \dots\ +\ a_K\leq\ 1000 $
- 入力はすべて整数である
### Sample Explanation 1
例えば、$ 5 $ 項目の $ 2 $ は、$ 5,6,7 $ 項目からなる部分列 $ (2,3,1) $ に含まれます。