等差数列
题号:NC25340
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

    给定一个长度为n的数列,可以对每个数进行加一或者减一这两种操作,每个数最多可以执行一次这样的操作,求使得这个数列变成等差数列最少需要的操作数,如果无法实现要求输出-1

输入描述:

第一行一个n(1≤n≤105

第二行n个数a1,a2,…an(-109≤ai≤109),表示第i个数的值为ai。

输出描述:

一个数,表示答案。
示例1

输入

复制
4
15 12 5 1

输出

复制
3
示例2

输入

复制
3
1 5 9

输出

复制
0
示例3

输入

复制
3
2 7 5

输出

复制
-1