在一个阳光明媚的村庄里,小 A 有一片美丽的果园。
果园里种着一排果树,这些果树从左到右依次排列,共有 N 棵。每棵果树上都结了许多果实,第 i 棵果树上结了 A_i 个果子。
小明计划在丰收的季节里,从这些果树中挑选一段连续的树,将收获的果子分给村里的 M 个小伙伴。他希望每个小伙伴都能分到同样数量的果子,因此他需要选择一段连续的果树,使得这些树上果子的总数是 M 的倍数。
具体来说,小明需要找到所有可能的区间 [L, R],满足以下条件:
你的任务是帮助小明计算出,共有多少个这样的区间 [L, R] 满足条件。
第一行包含两个整数 N 和 M,分别表示果树的数量和村里小伙伴的数量。
第二行包含 N 个整数 A_1, A_2, \dots, A_N,表示每棵果树上的果子数量。
输出一个整数,表示满足条件的区间 [L, R] 的总数。
3 2 4 1 5
3
13 17 29 7 5 7 9 51 7 13 8 55 42 9 81
6
40 6 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 2 1 1 4 1 5 1 5
154
果园有 3 棵果树,果子数量分别为 4、1、5,小伙伴数量为 2。小明需要找到所有连续的果树区间,使得这些树上的果子总数是 2 的倍数。
具体分析如下:
因此,满足条件的区间有 [1, 1]、[1, 3]、[2, 3],总数为 3。
对于 10\% 的数据,满足 1 \le N \le 100,1 \le M \le 10。
对于另外 25\% 的数据,满足 1 \le N \le 10^5,1 \le M \le 9。
对于 100\% 的数据,满足 1 \leq N \leq 10^5,2 \leq M \leq 10^9,1 \leq A_i \leq 10^9。