AT_dwacon6th_prelims_d Arrangement
Description
[problemUrl]: https://atcoder.jp/contests/dwacon6th-prelims/tasks/dwacon6th_prelims_d
ニワンゴ君は $ N $ 枚のカードを持っています。カードには $ 1,2,\ldots,N $ と番号が振られています。 ニワンゴ君はこれらのカードを一列に並べることにしました。
ニワンゴ君は以下の $ N $ 個の条件の全てを満たすカードの並べ方が存在するかどうかを知りたいです。 ニワンゴ君のためにそのような並べ方が存在するかどうかを判定し、存在する場合は辞書順最小の並べ方を求めてください。
- カード $ 1 $ の右隣のカードは(存在するならば) $ a_1 $ でない
- カード $ 2 $ の右隣のカードは(存在するならば) $ a_2 $ でない
- $ \vdots $
- カード $ N $ の右隣のカードは(存在するならば) $ a_N $ でない
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ a_1 $ $ a_2 $ $ \ldots $ $ a_N $
Output Format
条件を満たす並べ方が存在しない場合は `-1` を、存在する場合は条件を満たす辞書順最小のカードの並びを下記のフォーマットで出力せよ。 ここで、$ b_i $ は左から $ i $ 番目のカードの番号である。
> $ b_1 $ $ b_2 $ $ \ldots $ $ b_N $
Explanation/Hint
### 制約
- $ 2\ \leq\ N\ \leq\ 10^{5} $
- $ 1\ \leq\ a_i\ \leq\ N $
- $ a_i\ \neq\ i $
### Sample Explanation 1
\- $ (1,3,2,4) $ よりも辞書順で小さい並べ方は $ (1,2,3,4) $ がありますが、これはカード $ 1 $ の右隣のカードは $ 2 $ でない、という条件に反するため不適切です。
### Sample Explanation 2
\- 条件を満たす並べ方が存在しない場合は `-1` を出力してください。