解题思路
给定长度为 n 的数组 a,定义“好数组”为存在非负整数 k,使得对任意下标 i(从 1 开始)都有
∣ai−i∣=k.
我们可以通过每次对某个元素加或减 1 来调整数组,使其变为“好数组”,求最少操作次数。
- 令 bi=ai−i,则对固定的 k,位置 i 最终要满足
∣ai−i∣=k⟺ai=i+k或ai=i−k.
注意这里并不要求最终的值必须在 [1,n] 范围内,只要操作次数最少即可。
题目内容
小红认为一个长度为n的数组a是好的,当且仅当对于任意的i均满足:
∣ai−i∣均相等,其中数组下标i从1开始,小红每次可以对一个数加1或者减1,求把给定的数组变成好数组的最少操作次数
输入描述
第一行一个整数n(1≤n≤1000),表示数组长度。
第二行n个整数,第i个为ai(1≤ai≤n)。
输出描述
一个整数,表示把给定的数组变成好数组的最少操作次数。
样例1
输入
3
3 2 1
输出
2
样例2
输入
3
1 2 3
输出
0