#839. T5
T5
题目描述
有张牌编号分别为。 首先把这张牌打乱排成一排,然后我们要做一次旋转使得 旋转后固定点尽可能多。写一个程序,找到这样的子段。
旋转的定义: 旋转可以被认为是将其中的一个子段旋转度,这意味着子段的第一张卡和 最后一张卡交换位置,第二张牌和倒数第二张牌交换位置,等等。
固定点的定义: 如果第个位置的牌的编号为,我们就𝑖为固定点。
输入格式
输入的第一行包含一个整数 。
输入的第二行有个数,第个数表示旋转之前第个位置的牌的编号。
输出格式
找到固定点最多旋转子段,输出固定点的个数
4
3 2 1 4
4
2
1 2
2
7
3 6 5 7 4 1 2
2
样例解释
对于样例一,旋转子段,序列变成,所有位置都是固定点,答案为。
对于样例二,不用旋转就可以使得固定点为,因此选择任意一个长度为的区间旋转即可。
数据范围与提示
存在的测试样例满足。
另有测试样例满足。
另有测试样例满足。