1929. 数组整理
时间限制:1000 MS 内存限制:64 MB
题目描述
# 数组整理 ## 题目描述 小火龙有一个包含 $n$ 个非负整数的数组 $a_1,a_2,\ldots,a_n$。他可以先选择一个任意整数 $x$,然后对数组中的每个元素执行以下三种操作之一: - 将该元素加上 $x$; - 将该元素减去 $x$; - 保持该元素不变。 所有元素使用同一个 $x$,每个元素至多进行一次加法或减法操作。 请判断是否存在这样的整数 $x$,使得操作后数组中的所有元素都相等。 ## 输入格式 第一行包含一个整数 $n$,表示数组中的元素个数。 第二行包含 $n$ 个非负整数 $a_1,a_2,\ldots,a_n$,表示数组中的元素。 ## 输出格式 输出一行。如果可以使数组中的所有元素相等,输出 `YES`;否则输出 `NO`。 ## 数据范围 对于所有测试数据: - $1 \leq n \leq 100000$; - $0 \leq a_i \leq 10^9$; - $x$ 可以是任意整数,且所有元素使用同一个 $x$。 子任务分值与范围如下: | 子任务 | 分值 | 数据范围 | | --- | --- | --- | | 1 | $30$ 分 | $1 \leq n \leq 10$ | | 2 | $30$ 分 | $1 \leq n \leq 1000$ | | 3 | $40$ 分 | $1 \leq n \leq 100000$ | ## 样例输入 1 ``` 5 1 3 3 2 1 ``` ## 样例输出 1 ``` YES ``` ## 样例说明 1 可以选择 $x=1$,将第一个和第五个元素加上 $x$,将第二个和第三个元素减去 $x$,第四个元素保持不变。操作后,所有元素都等于 $2$。 ## 样例输入 2 ``` 5 1 2 3 4 5 ``` ## 样例输出 2 ``` NO ``` ## 时间与空间限制 - 时间限制:$1000$ 毫秒。 - 空间限制:$64$ MB。