atcoder#ABC233F. [ABC233F] Swap and Sort
[ABC233F] Swap and Sort
题目描述
を並び替えた長さ の順列 があります。
あなたが可能な操作は 種類あり、操作 は「 の 番目の要素と の 番目の要素を入れ替える」というものです。
操作を好きな順序で、合計 回以下行うことによって、 を昇順に並び替えることはできますか?
できるならば、操作手順を つ教えてください。できないならばその旨を伝えてください。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
を昇順に並び替えることができるならば以下の形式で出力せよ。
ここで、 は操作の回数を表し、 は 回目に行う操作が操作 であることを表す。
を満たさなければならないことに注意せよ。
を昇順に並び替えることができないならば、-1
と出力せよ。
题目大意
给你一个长度为 的排列和 种操作. 每个操作形如 , 表示将 和 交换 .
请问是否存在一种方案, 经过适当操作, 把这个排列变为 ? 如果可以, 请给出一种构造, 要求长度不超过 . 否则请输出 .
.
6
5 3 2 4 6 1
4
1 5
5 6
1 2
2 3
3
4 2 1
5
3 4 1 2 5
2
1 3
2 5
-1
4
1 2 3 4
6
1 2
1 3
1 4
2 3
2 4
3 4
0
提示
制約
- は を並び替えた順列
- $ 1\leq\ M\ \leq\ \min(2\times\ 10^5,\ \frac{N(N-1)}{2}) $
- ならば
- 入力に含まれる値は全て整数
Sample Explanation 1
は、$ (5,3,2,4,6,1)\to\ (5,2,3,4,6,1)\to\ (5,2,3,4,1,6)\to\ (1,2,3,4,5,6) $ と変化します。
Sample Explanation 2
を昇順に並び替えることはできません。
Sample Explanation 3
初めから が昇順に並んでいることもあります。 また、以下のような答えも正解になります。 4 5 5 5 5
操作の回数を最小化する必要はないことに注意してください。