思路
代码
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N=1e5+5;
#define LL long long
LL a[N];LL cnt[N];
int main(){
int n,m;
cin >> n >> m;
for(int i=1;i<=n;i++){
scanf("%lld", &a[i]);
a[i]+=a[i-1];
}
LL ans=0;
cnt[0]=1;//一定要初始化这个,虽然不会选取[0,0]的区间,但是会对后面的k的倍数的区间有影响.
for(int i=1;i<=n;i++){
ans+=cnt[a[i]%m];
cnt[a[i]%m]++;
}
printf("%lld\n", ans);
}