問題文
1,2,ldots,N を並び替えた数列 P=P1,P2,ldots,PN があります。
あなたは P に対して、以下の N−1 種類の操作を、任意の順番でちょうど 1 回ずつ行わなければなりません。
-
P1 と P2 を入れ替える
-
P2 と P3 を入れ替える
vdots
-
PN−1 と PN を入れ替える
操作の順番を適切に決めることで、P を昇順に並び替えてください。 もしそれが不可能な場合、-1
を出力してください。
制約
- 入力は全て整数
- 2leqNleq2times105
- P は 1,2,ldots,N を並び替えた数列
入力
入力は以下の形式で標準入力から与えられる。
N
P1 P2 ldots PN
出力
どのような順番で操作しても P を昇順に並び替えることができない場合、-1
を出力せよ。
P を昇順に並び替えることができる場合、そのような操作列を N−1 行使って出力せよ。 i (1leqileqN−1) 行目には、i 回目の操作で Pj と Pj+1 を入れ替えるとして、j を出力せよ。
P を昇順に並び替える操作列が複数存在する場合、どれを出力しても構わない。
入力例 1
5
2 4 1 5 3
出力例 1
4
2
3
1
以下のような操作列が P を昇順に並び替えます。
- まず P4 と P5 を入れ替える。P は 2,4,1,3,5 になる
- 次に P2 と P3 を入れ替える。P は 2,1,4,3,5 になる
- 次に P3 と P4 を入れ替える。P は 2,1,3,4,5 になる
- 次に P1 と P2 を入れ替える。P は 1,2,3,4,5 になる
入力例 2
5
5 4 3 2 1
出力例 2
-1