X 哥从军队退役之后做起了军队教官。这天他看着E班学生排起来乱七八糟的队伍,感到十分头疼。
E 班的 n 个人排成了一队,但是这些人并不是按身高从低到高排的。
X 哥可以进行三种操作:
将一条队列从两个学生中间的位置切割成两条
让一条队列中的学生向后转——这样一来这个队列中的学生顺序就会颠倒过来。
将所有不同的队列以任意顺序组合
X 哥想用这些操作让学生们从低到高排成一排。
因为切割队列需要喊很多很复杂的口号,X哥想知道最少需要切割几次队列。
第一行一个正整数 n,表示班里的总人数。
接下来一行 n 个数字,第 i 个数字 a_i 表示队列里第i个人是班里第a_i高的人。
保证从 1 到 n 的所有数都在 a_i 中出现一次。
一个正整数,表示最少进行几次切割队列的操作。
4 4 1 3 2
2
5 2 4 1 3 5
4
切割两次,将队伍分成 4|1|3,2三个队伍,然后让第三个队伍的学生向右转,再经过排列即可从小到大排列。
| 测试点编号 | n |
|---|---|
| 1∼5 | \le 5 |
| 6∼10 | \le 1000000 |