C. Multiple of k

C. Multiple of k

C. Multiple of k

时间限制:1s

空间限制:64MB

本题分值:200

题目描述

现有长度为 \(n\) 的数列 \(a\) ,给定正整数 \(k\) ,求所有的二元组\((i,\ j)\)的个数,使得:

  • \(i\le j\)
  • \(a_i+a_{i+1}+..+a_j\)是 \(k\) 的倍数

输入格式

第一行两个正整数\(n,k\)

接下来一行包含\(n\)个整数,表示这个数列。

输出格式

一个正整数,表示满足条件的二元组的个数。

样例输入1

4 2
1 1 1 0

样例输出1

4

样例解释

四个区间如下

[1,1],1,0

1,[1,1],0

1,[1,1,0]

1,1,1,[0]

样例输入2

70 9
0 6 8 7 0 1 3 2 7 1 4 7 3 1 8 6 2 3 8 8 5 0 2 3 5 1 8 0 3 6 6 4 2 0 8 7 1 4 2 7 0 2 6 2 0 5 6 1 8 2 6 2 1 4 0 3 5 0 7 6 3 7 5 8 6 4 2 7 5 4 

样例输出2

261

数据范围及限制

\(1\le k\le 10^6\)

\(0\le a_i\le 10^6\)

请注意,答案可能不在\(32\)位整数范围内。

测试点编号 约定 测试点分值
1~2 \(1\le n\le 100\) 每个测试点25分
3~4 \(1\le n\le 5*10^3\) 每个测试点35分
5~6 \(1\le n\le 5*10^5\) 每个测试点40分

信息

ID
1306
难度
9
分类
(无)
标签
递交数
151
已通过
11
通过率
7%
被复制
1
上传者