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 は存在しません。