fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. using ll=long long;
  4.  
  5. int main() {
  6. // your code goes here
  7. ll n;
  8. cin>>n;
  9. vector<ll>arr(n+1,0),p(n+1,0);
  10. for(ll i=1;i<=n;i++){
  11. cin>>arr[i];
  12. p[i]=p[i-1]+arr[i];
  13. }
  14. ll k;
  15. cin>>k;
  16. ll c=0;
  17. // for(ll i=0;i<n;i++){
  18. // sum=0;
  19. // for(ll j=i;j<n;j++){
  20. // sum+=arr[i];
  21. // ll len=j-i+1;
  22. // if(sum%k==len)c++;
  23.  
  24. // }
  25. // }
  26. //p[j]-p[i-1]=j-i+1
  27. //p[j]-j=p[i-1]-i+1
  28. unordered_map<ll,ll>mp;
  29. mp[0]=1;
  30. for(ll i=1;i<=n;i++){
  31. ll x=(p[i]%k-i%k+k)%k;
  32. if(mp.count(x)){
  33. c+=mp[x];
  34. }
  35. mp[x]++;
  36. }
  37. cout<<c<<endl;
  38.  
  39. return 0;
  40. }
Success #stdin #stdout 0s 5312KB
stdin
6
0 1 4 2 3 5
stdout
1