问题 2067 --等差数列(2018-pj-模拟2-D)

2067: 等差数列(2018-pj-模拟2-D)★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 68  解决: 33
[提交][状态][命题人:]

题目描述

水明老师拯救完世界后就被书给吐了出来,看来是太难吃了。书自动地翻到了第四页,上面有这样一段话,定义对于一个长度为n的数列,如果一个数列从第二项起,每一项与它的前一项的差等于同一个常数,这个数列就叫做等差数列。嗯只有一个数或两个数也算。

所以这句话有什么用呢?如果你在数学课上学过等差数列那就没用。Hhhhhh

现在书本给了水明老师一串数列b,并赋予水明老师两个按钮,+1-1,水明可以对每一个数至多使用其中一个按钮一次,现在请计算最少的操作次数使得b数列变为等差数列。操作次数可能为0. 对于数列24 21 14 10需要使用3次使其变为25 20 15 10.


输入

第一行输入一个整数n (1≤n≤100000),数列的长度,

第二行输入n个整数,表示序列 b1,b2,…,bn (1≤bi≤10^9) 

输出

输出一个数表示最少的变化次数

如果无解则输出-1

样例输入
Copy
4
24 21 14 10
样例输出
Copy
3

提示

来源

[提交][状态]