atcoder#DWACON6THPRELIMSD. Arrangement

Arrangement

配点 : 800800

問題文

ニワンゴ君は NN 枚のカードを持っています。カードには 1,2,,N1,2,\ldots,N と番号が振られています。 ニワンゴ君はこれらのカードを一列に並べることにしました。

ニワンゴ君は以下の NN 個の条件の全てを満たすカードの並べ方が存在するかどうかを知りたいです。 ニワンゴ君のためにそのような並べ方が存在するかどうかを判定し、存在する場合は辞書順最小の並べ方を求めてください。

  • カード 11 の右隣のカードは(存在するならば) a1a_1 でない
  • カード 22 の右隣のカードは(存在するならば) a2a_2 でない
  • \vdots
  • カード NN の右隣のカードは(存在するならば) aNa_N でない

制約

  • 2N1052 \leq N \leq 10^{5}
  • 1aiN1 \leq a_i \leq N
  • aiia_i \neq i

入力

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

NN

a1a_1 a2a_2 \ldots aNa_N

出力

条件を満たす並べ方が存在しない場合は -1 を、存在する場合は条件を満たす辞書順最小のカードの並びを下記のフォーマットで出力せよ。 ここで、bib_i は左から ii 番目のカードの番号である。

b1b_1 b2b_2 \ldots bNb_N

4
2 3 4 1
1 3 2 4
  • (1,3,2,4)(1,3,2,4) よりも辞書順で小さい並べ方は (1,2,3,4)(1,2,3,4) がありますが、これはカード 11 の右隣のカードは 22 でない、という条件に反するため不適切です。
2
2 1
-1
  • 条件を満たす並べ方が存在しない場合は -1 を出力してください。
13
2 3 4 5 6 7 8 9 10 11 12 13 12
1 3 2 4 6 5 7 9 8 10 12 11 13