问题 4568 --众生平等

4568: 众生平等★★

时间限制: 2 Sec  内存限制: 256 MB
提交: 346  解决: 132
[提交][状态][命题人:]

题目描述

现在我们有n个整数,放在了a数组里。

你可以选择任一非负整数D,然后对所有a数组内的数进行下面三种操作中的一种:

1. 添加D(只能加一次)

2. 减去D(只能减一次)

3. a[i]保持不变

当然这样操作过后a[i]是有可能变成负数的。

你的目标是找出一个最小的非负整数D然后用上面的三种操作来使得a数组中的每一个数都相等,最终输出这个最小的非负整数D,如果找不到这样一个D的话就输出-1。

例如:要使数组[2,8]变得全部相等的话,需要的D就是3,操作后的数组为[5,5];再例如数组[1,4,7,7]所需要的D是3,操作后的数组为[4,4,4,4]。

输入

第一行为数组内数据数量n(1≤n≤100)

第二行为n个数据a[1],a[2]…a[n] 1≤a[i]≤100)

输出

如果能找到最小的非负整数D就输出D,否则输出-1

样例输入
Copy
6
1 4 4 7 4 1
样例输出
Copy
3

提示

样例2输入

5
2 2 5 2 5

样例2输出

3

样例3输入

4
1 3 3 7

样例3输出

-1

样例4输入

2
2 8

样例4输出

3

来源

[提交][状态]