CF1656C Make Equal With Mod

题目描述

给定一个长度为 $n$ 的非负整数数组 $a_1, a_2, \ldots, a_n$。你可以进行如下操作:选择一个整数 $x \geq 2$,将数组中的每个数替换为它除以 $x$ 的余数,即对所有 $1 \leq i \leq n$,将 $a_i$ 变为 $a_i \bmod x$。 请判断是否可以通过若干次(可以为零次)上述操作,使得数组中的所有元素都相等。

输入格式

输入包含多组测试用例。第一行包含一个整数 $t$($1 \leq t \leq 10^4$),表示测试用例的数量。接下来是每个测试用例的描述。 每个测试用例的第一行包含一个整数 $n$($1 \leq n \leq 10^5$),表示数组的长度。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($0 \leq a_i \leq 10^9$),表示数组的元素。 所有测试用例中 $n$ 的总和不超过 $2 \times 10^5$。

输出格式

对于每个测试用例,输出一行,如果可以通过若干次操作使数组所有元素相等,则输出 YES,否则输出 NO。 你可以用任意大小写输出答案(例如 "YES", "Yes", "yes", "yEs" 都会被认为是正确的)。

说明/提示

在第一个测试用例中,可以先选择 $x = 3$,得到数组 $[2, 2, 0, 2]$,然后选择 $x = 2$,得到 $[0, 0, 0, 0]$。 在第二个测试用例中,所有数字已经相等。 在第四个测试用例中,选择 $x = 4$ 后,数组变为 $[1, 1, 1, 1]$。 由 ChatGPT 4.1 翻译