atcoder#ARC132B. [ARC132B] Shift and Reverse
[ARC132B] Shift and Reverse
配点 : 点
問題文
の順列 が与えられます。 この順列に対して以下の操作を、好きな順で何度でも行えます。
- 全体をひっくりかえす。つまり、 を に並び替える。
- 先頭の項を末尾に移動させる。つまり、 を に並び替える。
順列を昇順に並び替えるのに必要な操作回数の最小値を求めてください。 ただし、与えられる入力について、これらの操作によって順列を昇順に並び替えられることが保証されています。
制約
- は の順列
- 問題文中の操作によって を昇順に並び替えられる
入力
入力は以下の形式で標準入力から与えられる。
出力
順列を昇順に並び替えるのに必要な操作回数の最小値を出力せよ。
3
1 3 2
2
次のように操作すると 回で昇順に並び替えできます。
- 先頭の項を末尾に移動させ、 に並び替える。
- 全体をひっくりかえし、 に並び替える。
回未満の操作で昇順に並び替えることはできないため、答えは です。
2
2 1
1
どちらの操作をしても 回で昇順に並び替えできます。
回未満の操作で昇順に並び替えることはできないため、答えは です。
10
2 3 4 5 6 7 8 9 10 1
3
次のように操作すると 回で昇順に並び替えできます。
- 全体をひっくりかえし、 に並び替える。
- 先頭の項を末尾に移動させ、 に並び替える。
- 全体をひっくりかえし、 に並び替える。
回未満の操作で昇順に並び替えることはできないため、答えは です。
12
1 2 3 4 5 6 7 8 9 10 11 12
0
一度も操作する必要がありません。