染坊里有 n 口染缸排成一排,第 i 口染缸里的染料浓度为 a_i。师傅要求最终每口染缸的浓度都必须是 k 的倍数。
染坊的加色机器非常古怪:从第 0 分钟开始,机器的刻度盘依次显示整数 0, 1, 2, 3, \dots(每分钟加 1)。在每一分钟,你可以选择任意一口染缸,向其中加入**当前刻度值**那么多单位的纯色(也可以选择这一分钟什么都不做,也就是每个缸只能操作一次染色),刻度值不能被拆分或保留。
求最少需要多少分钟,才能把所有染缸的浓度都调成 k 的倍数(初始时已经全是 k 的倍数时答案为 0)。
第一行一个整数 t,表示数据组数。
每组数据两行:第一行两个整数 n 和 k;第二行 n 个整数 a_1, a_2, \dots, a_n。
对每组数据输出一行一个整数,表示最少分钟数。
5 4 3 1 2 1 3 10 6 8 7 1 8 3 7 5 10 8 9 5 10 20 100 50 20 100500 10 25 24 24 24 24 24 24 24 24 24 24 8 8 1 2 3 4 5 6 7 8
6 18 0 227 8
以第 1 组为例(n=4,k=3,浓度 1,2,1,3):从第 0 分钟到第 5 分钟共 6 分钟,可以在刻度为 2 的那一分钟给第 1 口缸加 2,在刻度为 5 的那一分钟给第 3 口缸(浓度为 1)加 5,在刻度为 1 的那一分钟给第 2 口缸(浓度为 2)加 1;第 4 口缸本来就是 3 的倍数。最终浓度 3,3,6,3 全是 3 的倍数,而 5 分钟内做不到,故答案为 6。第 3 组初始就全部是 10 的倍数,答案为 0。
| 20% | 1~5 | 20 | t \le 10,n \le 20,k \le 25,a_i \le 10^6 |
| 60% | 6~15 | 40(累计 60) | 所有组 n 之和 \le 2000 |
| 100% | 16~25 | 40(累计 100) | 所有组 n 之和 \le 2\times 10^5,k \le 10^9 |
对于全部数据,保证 1 \le t \le 2\times 10^4,1 \le n \le 2\times 10^5(所有组 n 之和不超过 2\times 10^5),1 \le k \le 10^9,1 \le a_i \le 10^9。
| 时间限制 | 1 秒 |
| 内存限制 | 128 MB |