AT_arc132_b.[ARC132B] Shift and Reverse
普及-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个 1,…,n 的排列 p1,…,pn。你可以对该排列进行如下两种操作,操作次数不限、顺序任意:
- 将整个排列翻转。即,将 p1,p2,…,pn 变为 pn,pn−1,…,p1。
- 将首项移动到末尾。即,将 p1,p2,…,pn 变为 p2,p3,…,pn,p1。
请你求出将该排列变为升序排列所需的最小操作次数。保证对于给定的输入,使用上述操作一定可以将排列变为升序排列。
输入格式
输入从标准输入读入,格式如下:
n p1 p2 … pn
输出格式
输出将排列变为升序排列所需的最小操作次数。
输入输出样例
输入#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
说明/提示
限制条件
- 2≤n≤105
- p1,p2,…,pn 是 1,…,n 的一个排列
- 保证通过题目描述的操作一定可以将 p1,…,pn 变为升序排列
样例解释 1
可以按如下方式用 2 次操作将排列变为升序排列:
- 将首项移动到末尾,排列变为 3,2,1。
- 将整个排列翻转,排列变为 1,2,3。
无法在少于 2 次操作内完成,因此答案为 2。
样例解释 2
无论使用哪种操作,只需 1 次即可将排列变为升序排列。无法在少于 1 次操作内完成,因此答案为 1。
样例解释 3
可以按如下方式用 3 次操作将排列变为升序排列:
- 将整个排列翻转,排列变为 1,10,9,8,7,6,5,4,3,2。
- 将首项移动到末尾,排列变为 10,9,8,7,6,5,4,3,2,1。
- 将整个排列翻转,排列变为 1,2,3,4,5,6,7,8,9,10。
无法在少于 3 次操作内完成,因此答案为 3。
样例解释 4
无需进行任何操作。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?