数据全都开long long了,前缀和没有及时%k应该也不会溢出才对,整蒙圈了
ll C2(ll x){
return x*(x-1)/2;
}
for(int i = 1; i <= n; i++){
cin>>a[i];
p[i] = (p[i-1]+a[i])%k;
}
ll ans = 0;
for(int i = 0; i <= n; i++){
bkt[p[i]]++;
}
for(int i = 0; i <= n; i++){
ans += C2(bkt[i]);
}
for(int i = 1; i <= n; i++){
cin>>a[i];
p[i] = p[i-1]+a[i];
}
for(int i = 0; i <= n; i++){
p[i]%=k;
bkt[p[i]]++;
}
ll ans = 0;
for(int i = 0; i <= n; i++){
ans += C2(bkt[i]);
}