fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. // your code goes here
  6. int n,d;
  7. cin>>n>>d;
  8.  
  9. vector<int> v(n);
  10. for(int i = 0; i < n; i++){
  11. cin>>v[i];
  12. }
  13.  
  14. unordered_map<int,int> ump;
  15. int cnt = 0;
  16.  
  17. for(int k = 0; k < n; k++){
  18.  
  19. // Sometimes v[k] is greater then k then if we did not perform this step which
  20. // leads to end up -ve numbers
  21.  
  22. int ele = v[k] % d;
  23.  
  24. int rem = (d - ele) % d;
  25.  
  26. if(ump.count(rem)){
  27. cnt += ump[rem];
  28. }
  29.  
  30. // ump[v[i] % d] ++;
  31. for(int u = 0; u <= k-1; u++){
  32. ump[(v[u] + v[k]) % d]++;
  33. }
  34. }
  35. cout<<cnt<<endl;
  36. return 0;
  37. }
Success #stdin #stdout 0.01s 5288KB
stdin
6 5
2 2 5 5 3 3
stdout
8