C - Strange Paper
Editorial
/
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 500 点
問題文
tada72 君は不思議な紙を拾いました。その紙には、 「この紙には 1 が 2 個、 2 が 3 個、 3 が 2 個、 4 が 1 個書かれている」と書いてありました。そして彼は、同じような性質を持つ紙を他にも作ってみたくなりました。
整数 N が与えられるので、次の 2 つの条件を満たす長さ N の数列 A が存在するか判定し、存在する場合は構築してください。
- 数列の要素は全て 1 以上 N 以下の整数
- 1 \leq i \leq N を満たす全ての整数 i に対し、 i=A_j(1 \leq j \leq N) を満たす整数 j は A_i-1 個存在する
制約
- 1 \leq N \leq 10^5
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
N
出力
条件を満たす数列 A が存在しない場合、 1 行に -1
と出力せよ。存在する場合、以下の形式で数列 A を出力せよ。
A_1 A_2 \ldots A_N
なお、条件を満たす数列 A が複数存在する場合、そのどれを出力してもよい。
入力例 1
4
出力例 1
2 3 2 1
A には 1 が 1 個、 2 が 2 個、 3 が 1 個、 4 が 0 個含まれているので条件を満たしています。
入力例 2
2
出力例 2
-1
原案: tada72