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 翻译