问题 H: 间隔

问题 H: 间隔★★★

时间限制: 1 Sec  内存限制: 256 MB
提交: 202  解决: 71
[提交][状态][命题人:]

题目描述

牛牛现在有一个从小到大排好序的整数序列A。 

他希望插入一些整数,使得相邻两两之间的差值一样大。不能插入在开头和结尾 。

牛牛想知道最少插入多少个整数才能满足要求,如果不能,则输出 −1 。

输入

第一行一个整数  T ,表示数据组数。

 每组数据第一行输入一个整数 n ,表示序列 A 的大小。 

每组数据第二行输入 n 个整数,表示 A 数组中的数字 A[i]。 

对于 30%的数据有1 ≤ n ≤ 3。 

对于 60%的数据有1 ≤ n ≤ 1000。 

对于 100%的数据有1 ≤ n ≤ 1e6, 0 ≤ A[i] ≤ 1e6, 1 ≤ T ≤ 10。

输出

对于每组数据输出一行一个整数,即插入的最小数字个数。
样例输入
Copy
3
4
3 7 11 19
3
3 8 10
5
3 9 15 21 21
样例输出
Copy
1
5
-1

提示

样例说明:

对于样例 1,可以填入一个 15,使得(3,7,11,15,19)相邻两两差值为 4。 

对于样例 2,可以填入(4,5,6,7,9),使得(3,4,5,6,7,8,9,10)相邻两两差值为 1。 

对于样例 3,无论怎么插入都无法使数组相邻两两间差值相同。

[提交][状态]