#new4. 授法

    ID: 4421 传统题 1000ms 256MiB 尝试: 41 已通过: 1 难度: 7 上传者: 标签>数据结构线段树其他数学单调栈思维gcd

授法

题目描述

此题蕴含知识点诸多,待我为你授法。

现在定义区间整除数组aa为,数组aa中,对于每一个子数组[l,r][l,r],子数组中存在lxrl\leq{x}\leq{r}axa_x可以整除区间中的所有aia_i,(lirl\leq{i}\leq{r}),这样的数组a被称为整除数组。

现在对于长度为n的数组b来说,我们会对他进行一次不保留的操作,操作为对于每个位置上的值都加上d,d满足1dk1\leq{d}\leq{k},即变为b1+d,b2+d,......,bn+db_1+d,b_2+d,......,b_n+d。现在你需要找到能够把数组b变成整除数组的d,并输出合法d的数量,以及这些合法d的和。

输入格式

第一行输出一个数字TT,表示测试样例数量。

对于每个测试样例:

第一行包含两个整数n,kn,k,分别表示数组的长度,和d取值范围的限制。

第二行输出n个数字bib_i,表示数组b上第i个值。

输出格式

对于每个测试样例:

输出一行,表示答案

样例

3
5 10
7 79 1 7 1
2 1000000000
1 2
1 100
1000000000
3 8
0 0
100 5050

样例解释: 对于第一组数据,1,2,5都为合理答案,数量为3个,总和为8,可以按照题目意思,代入数组中自主验证。

限制

1s, 256mb

数据范围

对于30%的数据,1sum(n)10,1bi,k100,1T11\leq{sum(n)}\leq{10},1\leq{b_i,k}\leq{100},1\leq{T}\leq{1}

对于另外30%的数据,1sum(n)100,1bi,k109,1T11\leq{sum(n)}\leq{100},1\leq{b_i,k}\leq{10^9},1\leq{T}\leq{1}

对于100%的数据,1sum(n)104,1bi,k109,1T1001\leq{sum(n)}\leq{10^4},1\leq{b_i,k}\leq{10^9},1\leq{T}\leq{100}