#P14221. [ICPC 2024 Kunming I] 学而时习之

[ICPC 2024 Kunming I] 学而时习之

题目描述

给定长度为 nn 的正整数序列 a1,a2,⋯ ,ana_1, a_2, \cdots, a_n 以及一个非负整数 kk,您可以执行以下操作至多一次:选择两个整数 ll 和 rr 满足 1≤l≤r≤n1 \le l \le r \le n,之后对于每个 l≤i≤rl \le i \le r,将 aia_i 变为 (ai+k)(a_i + k)。

最大化整个序列的最大公因数。

称整数 gg 是整个序列的公因数,若对于所有 1≤i≤n1 \le i \le n 都满足 aia_i 能被 gg 整除。

输入格式

有多组测试数据。第一行输入一个整数 TT 表示测试数据组数。对于每组测试数据:

第一行输入两个整数 nn 和 kk(1≤n≤3×1051\leq n\leq 3 \times 10^5,0≤k≤10180\leq k\leq 10^{18})。

第二行输入 nn 个整数 a1,a2,⋯ ,ana_1, a_2, \cdots, a_n(1≤ai≤10181 \le a_i \le 10^{18})表示序列。

保证所有数据 nn 之和不超过 3×1053 \times 10^5。

输出格式

每组数据输出一行一个整数,表示整个序列最大的最大公因数。

2
6 2
5 3 13 8 10 555
3 0
3 6 9
5
3

提示

对于第一组样例数据,选择 l=2l = 2 以及 r=4r = 4。序列会变为 {5,5,15,10,10,555}\{5, 5, 15, 10, 10, 555\}。序列的最大公因数是 55。