#J20003. k倍区间

k倍区间

问题描述

给定一个长度为 NN 的数列 A1,A2,…,ANA_1, A_2, \ldots, A_N。如果其中一段连续的子序列 Ai,Ai+1,…,AjA_i, A_{i+1}, \ldots, A_j(i≤ji \le j)之和是 KK 的倍数,我们就称这个区间 [i,j][i, j] 是 KK 倍区间。

你能求出数列中总共有多少个 KK 倍区间吗?

输入格式

第一行包含两个整数 NN 和 KK。

接下来 NN 行,每行一个整数 AiA_i。

输出格式

一个整数,即 KK 倍区间的总数。

样例输入 1

5 2
1
2
3
4
5

样例输出 1

6

说明:KK 倍区间为 [1,3][1,3](1+2+3=61+2+3=6)、[1,4][1,4](1+2+3+4=101+2+3+4=10)、[2,2][2,2](22)、[2,5][2,5](2+3+4+5=142+3+4+5=14)、[3,5][3,5](3+4+5=123+4+5=12)、[4,4][4,4](44),共 66 个。

样例输入 2

3 1
1
2
3

样例输出 2

6

说明:K=1K = 1 时所有区间都是 11 的倍数,N=3N = 3 时共 3×4/2=63 \times 4 / 2 = 6 个区间。

样例输入 3

4 3
1
2
3
4

样例输出 3

4

说明:KK 倍区间有 [1,2][1,2](1+2=31+2=3)、[1,3][1,3](1+2+3=61+2+3=6)、[2,4][2,4](2+3+4=92+3+4=9)、[3,3][3,3](3=33=3),共 44 个。

评测数据规模

对于所有数据,保证 1≤N,K≤1051 \le N, K \le 10^5,1≤Ai≤1051 \le A_i \le 10^5。