模段(mseg)

题目描述

Y 同学有一个长度为 nn 的非负整数序列 a1,a2,,ana_1,a_2,\ldots,a_n 和一个正整数 mm。他想统计有多少个非空连续区间 [l,r][l,r] 满足

i=lrai\sum_{i=l}^{r} a_i

能够被 mm 整除。

现在给定多组数据,请你分别求出这样的区间数量。

输入格式

第一行包含一个整数 TT,表示测试组数。

对于每组测试数据,第一行包含两个整数 n,mn,m

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n

输出格式

对每组测试数据,输出一行一个整数,表示满足条件的非空连续区间数量。

样例

样例输入 #1

2
5 3
1 2 3 4 5
4 5
5 5 5 5

样例输出 #1

7
10

数据范围与约定

对于 100%100\% 的数据,保证 1T2×1051 \le T \le 2\times 10^51n2×1051 \le \sum n \le 2\times 10^51m1091 \le m \le 10^90ai1090 \le a_i \le 10^9

测试点编号 分值 n\sum n \le mm \le aia_i \le 特殊性质
121 \sim 2 1010 20002000 100100 10610^6
353 \sim 5 1515 10510^5 10910^9 10910^9 特殊性质 A
686 \sim 8 2×1052\times 10^5 11 特殊性质 B
9129 \sim 12 2020 5×1045\times 10^4 10910^9
131613 \sim 16 10510^5
172017 \sim 20 2×1052\times 10^5
  • 特殊性质 A:保证每组数据的 n2000n \le 2000
  • 特殊性质 B:保证 m=1m=1