fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int subarraysDivisible(vector<int>&arr, int n , int k){
  5. unordered_map<int,int>mpp;
  6. mpp[0]++;
  7. int vlSubarrays = 0;
  8.  
  9. int sum = 0;
  10. for(int i=0;i<n;i++){
  11. sum += arr[i];
  12. int x = sum%k;
  13. vlSubarrays += mpp[x];
  14. mpp[x]++;
  15. }
  16. return vlSubarrays;
  17. }
  18.  
  19. int main() {
  20. int n;
  21. cin>>n;
  22. vector<int>arr(n);
  23. for(int i=0;i<n;i++){
  24. cin>>arr[i];
  25. }
  26.  
  27. int k;
  28. cin>>k;
  29.  
  30. cout<<"Number of Subarrays divisible by k : "<<subarraysDivisible(arr,n,k);
  31. return 0;
  32. }
Success #stdin #stdout 0s 5284KB
stdin
4 
2 3 5 8 
2
stdout
Number of Subarrays divisible by k : 6