#CF1909B. 通过取模运算实现近似相等

通过取模运算实现近似相等

B. 通过取模使数组几乎相等

每次测试时间限制:1 秒
每次测试内存限制:256 兆字节


你有一个由 不同 的正整数组成的数组 a1,a2,,ana_1, a_2, \dots, a_n。你需要恰好执行一次以下操作:

  • 选择一个正整数 kk
  • 对于每个 ii11nn,将 aia_i 替换为 aimodka_i \bmod k†。

找到一个 kk 的值,使得 1k10181 \leq k \leq 10^{18},并且在操作结束后,数组 a1,a2,,ana_1, a_2, \dots, a_n 恰好包含 22 个不同的值。可以证明,在题目的限制条件下,至少存在一个这样的 kk。如果有多个解,你可以输出其中任意一个。

amodba \bmod b 表示 aa 除以 bb 后的余数。例如:
7mod3=17 \bmod 3 = 1,因为 7=32+17 = 3 \cdot 2 + 1
15mod4=315 \bmod 4 = 3,因为 15=43+315 = 4 \cdot 3 + 3
21mod1=021 \bmod 1 = 0,因为 21=211+021 = 21 \cdot 1 + 0


输入
每个测试点包含多个测试用例。第一行包含一个整数 tt1t5001 \leq t \leq 500)——测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn2n1002 \leq n \leq 100)——数组 aa 的长度。
第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai10171 \leq a_i \leq 10^{17})——数组的初始状态。保证所有的 aia_i 互不相同。

注意,所有测试用例的 nn 之和没有额外的限制。


输出
对于每个测试用例,输出一个整数:一个满足条件的 kk 值(1k10181 \leq k \leq 10^{18}),使得操作后的数组恰好包含 22 个不同的值。


示例

输入:

5
4
8 15 22 30
5
60 90 98 120 308
6
328 769 541 986 215 734
5
1000 2000 7000 11000 16000
2
2 1

输出:

7
30
3
5000
1000000000000000000

说明
在第一个测试用例中,可以选择 k=7k = 7。数组变为 $[8 \bmod 7, 15 \bmod 7, 22 \bmod 7, 30 \bmod 7] = [1, 1, 1, 2]$,恰好包含 22 个不同的值({1,2}\{1, 2\})。

在第二个测试用例中,可以选择 k=30k = 30。数组变为 [0,0,8,0,8][0, 0, 8, 0, 8],恰好包含 22 个不同的值({0,8}\{0, 8\})。注意选择 k=10k = 10 也是一个有效的解。

在最后一个测试用例中,可以选择 k=1018k = 10^{18}。数组变为 [2,1][2, 1],恰好包含 22 个不同的值({1,2}\{1, 2\})。注意选择 k=1018+1k = 10^{18} + 1 是无效的,因为必须满足 1k10181 \leq k \leq 10^{18}