每次测试的内存限制256 MB。
你将得到一个长度为 n 的数组 a 和 q 次查询 l ,r 。
对于每个查询,找到最大可能的 m ,使得所有元素al,al+1 ,……,ar 模m同余。换句话说,al mod m = al+1 mod m= ⋯ = ar mod m ,其中 a mod b --是 a 除以 b 的余数。特别是,当 m 可以是无穷大时,输出 0 。
输入
第一行包含一个整数 t(1≤t≤104)——测试用例的数量。
每个测试用例的第一行包含两个整数 n ,q (1≤n,q≤2⋅105)——数组的长度和查询次数。
每个测试用例的第二行包含 n 个 整数 ai(1≤ai≤109)——数组的元素。
接下来的 q 行,提供两个整数 l,r(1≤l≤r≤n)——查询的范围。 保证所有测试用例中的 n 之和不超过 2⋅105 ,q 之和不大于 2⋅105 。
输出
对于每个查询,输出语句中描述的最大值 m。
markdown:
每次测试的内存限制256 MB。
你将得到一个长度为 $n$ 的数组 $a$ 和 $q$ 次查询 $l$ ,$r$ 。
对于每个查询,找到最大可能的 $m$ ,使得所有元素$a_l$,$a_{l + 1}$ ,……,$a_r$
模m同余。换句话说,$a_l$ $mod$ $m$ = $a{l + 1}$ $mod$ $m$= ⋯ = $a_r$ $mod$ $m$ ,其中 $a$ $mod$ $b$
--是 $a$ 除以 $b$ 的余数。特别是,当 $m$ 可以是无穷大时,输出 $0$ 。
输入
第一行包含一个整数 $t$($1≤t≤10^4$)——测试用例的数量。
每个测试用例的第一行包含两个整数 $n$ ,$q$
($1≤n,q≤2⋅10^5$)——数组的长度和查询次数。
每个测试用例的第二行包含 $n$ 个
整数 $a_i$($1≤a_i≤10^9$)——数组的元素。
接下来的 $q$ 行,提供两个整数 $l$,$r$($1≤l≤r≤n$)——查询的范围。
保证所有测试用例中的 $n$ 之和不超过 $2⋅10^5$ ,$q$ 之和不大于 $2⋅10^5$ 。
输出
对于每个查询,输出语句中描述的最大值 $m$。