#arc132b. [arc132_b]Shift and Reverse
[arc132_b]Shift and Reverse
题目描述
给定一个 的排列:。在这个排列上,你可以任意次数以任意顺序执行以下操作:
- 反转整个排列。也就是说,将 重新排列成 。
- 将开头的元素移到末尾。也就是说,将 重新排列成 。
找出将排列按升序排序所需的最小操作次数。在给定的输入中,保证这些操作可以按升序对排列进行排序。
约束条件
- 是 的排列。
- 题目说明中的操作可以将 按升序排序。
输入
从标准输入中以以下格式给出输入:
输出
输出将排列按升序排序所需的最小操作次数。
示例输入1
3
1 3 2
示例输出1
2
可以通过以下两个操作将其按升序排序。
- 将开头的元素移到末尾:现在你有 。
- 反转整个排列:现在你有 。
不能在少于两次操作的情况下对其进行排序,因此答案是 。
示例输入2
2
2 1
示例输出2
1
执行任意一个操作都可以按升序排序。
不能在少于一次操作的情况下对其进行排序,因此答案是 。
示例输入3
10
2 3 4 5 6 7 8 9 10 1
示例输出3
3
可以通过以下三个操作将其按升序排序。
- 反转整个排列:现在你有 。
- 将开头的元素移到末尾:现在你有 。
- 反转整个排列:现在你有 。
不能在少于三次操作的情况下对其进行排序,因此答案是 。
示例输入4
12
1 2 3 4 5 6 7 8 9 10 11 12
示例输出4
0
不需要任何操作。