atcoder#ARC147B. [ARC147B] Swap to Sort
[ARC147B] Swap to Sort
配点 : 点
問題文
の順列 が与えられます。あなたは以下の 種類のどちらかの操作を行うことを繰り返すことで を昇順に並び替えたいです。
- 操作 : を満たす整数 を選び、 と を入れ替える
- 操作 : を満たす整数 を選び、 と を入れ替える
操作 の回数が最小となり、かつ操作回数の合計が 回以下であるような操作の手順を つ示してください。
なお、この問題の制約のもとで、条件を満たす解が存在することが証明できます。
制約
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
出力
操作回数の合計を 回としたとき、 行出力せよ。
行目には を出力せよ。
行目には、
- 回目の操作が操作 で、選ぶ整数が の場合、
A i
を - 回目の操作が操作 で、選ぶ整数が の場合、
B i
を
出力せよ。
複数の解がある場合は、どれを答えてもよい。
4
3 2 4 1
4
A 3
B 1
B 2
B 2
この出力例では、 は $(3,2,4,1) \rightarrow (3,2,1,4) \rightarrow (1,2,3,4) \rightarrow (1,4,3,2) \rightarrow (1,2,3,4)$ の順に変わります。
操作回数の合計は最小でなくてもよいということに注意してください。
3
1 2 3
0
6
2 1 4 3 6 5
3
A 1
A 3
A 5