题目描述
给定长度为 n 的正整数序列 a1,a2,⋯,an 以及一个非负整数 k,您可以执行以下操作至多一次:选择两个整数 l 和 r 满足 1≤l≤r≤n,之后对于每个 l≤i≤r,将 ai 变为 (ai+k)。
最大化整个序列的最大公因数。
称整数 g 是整个序列的公因数,若对于所有 1≤i≤n 都满足 ai 能被 g 整除。
输入格式
有多组测试数据。第一行输入一个整数 T 表示测试数据组数。对于每组测试数据:
第一行输入两个整数 n 和 k(1≤n≤3×105,0≤k≤1018)。
第二行输入 n 个整数 a1,a2,⋯,an(1≤ai≤1018)表示序列。
保证所有数据 n 之和不超过 3×105。
输出格式
每组数据输出一行一个整数,表示整个序列最大的最大公因数。
2
6 2
5 3 13 8 10 555
3 0
3 6 9
5
3
提示
对于第一组样例数据,选择 l=2 以及 r=4。序列会变为 {5,5,15,10,10,555}。序列的最大公因数是 5。