D - Double Permutations
解説
/


実行時間制限: 2 sec / メモリ制限: 1024 MiB
配点 : 400 点
問題文
正整数 N が与えられます。
(0,1, \dots, N - 1) を並べ替えて得られる数列 P = (P_1, \dots, P_N) であって、以下の条件を満たすものは存在しますか?
- 1 \leq i \leq N に対し Q_i = \left(\sum_{j = 1}^i P_j\right) \bmod N とおくと、Q_1, \dots, Q_N は (0, 1,\dots, N - 1) を並べ替えて得られる。
存在するならばその一例を示し、存在しないならばそのことを報告してください。
制約
- 1 \leq N \leq 2 \times 10^5
- N は整数
入力
入力は以下の形式で標準入力から与えられる。
N
出力
問題文中の条件を満たす P が存在するならば、その一例を P_1, \dots, P_N の順に空白で区切って一行に出力せよ。条件を満たす P が複数考えられる場合、どれを出力しても正解となる。
条件を満たす P が存在しないならば、-1 と出力せよ。
入力例 1
4
出力例 1
0 1 2 3
P = (0, 1, 2, 3) のとき Q = (0, 1, 3, 2) となるため条件を満たします。他にも、例えば P = (0, 3, 2, 1) が条件を満たします。
入力例 2
3
出力例 2
-1
条件を満たす P は存在しません。