CF1154B Make Them Equal
题目描述
给定一个由 $n$ 个整数构成的序列 $a_1, a_2, \dots, a_n$。
你可以选择任意一个非负整数 $D$(即 $D \ge 0$),对于每个 $a_i$,你可以:
- 加上 $D$(仅一次),即执行 $a_i := a_i + D$,或者
- 减去 $D$(仅一次),即执行 $a_i := a_i - D$,或者
- 保持 $a_i$ 不变。
操作后 $a_i$ 的值可以为负数。
你的目标是选择一个最小的非负整数 $D$,并进行上述操作,使得所有 $a_i$ 都相等(即 $a_1 = a_2 = \dots = a_n$)。
请输出所需的 $D$,如果不存在这样的 $D$,输出 $-1$。
例如,对于数组 $[2, 8]$,最小的 $D=3$,因为你可以将 $2$ 加上 $D$,将 $8$ 减去 $D$,得到数组 $[5, 5]$。对于数组 $[1, 4, 7, 7]$,最小的 $D=3$,你可以将 $1$ 加上 $D$,将 $7$ 减去 $D$,得到数组 $[4, 4, 4, 4]$。
输入格式
输入的第一行包含一个整数 $n$($1 \le n \le 100$),表示序列 $a$ 的元素个数。
输入的第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le 100$),表示序列 $a$。
输出格式
输出一个整数,表示最小的非负整数 $D$,使得通过上述操作后,所有 $a_i$ 都能相等。
如果不存在这样的 $D$,输出 $-1$。
说明/提示
由 ChatGPT 4.1 翻译