fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. int n,d;
  6. cin>>n>>d;
  7.  
  8. if(n <=2 ){
  9. cout<<0;
  10. return 0;
  11. }
  12.  
  13. vector<int> numbers(n);
  14.  
  15. for(auto& number: numbers){
  16. cin>>number;
  17. }
  18.  
  19. int answer = 0;
  20.  
  21. unordered_map<int,int> moduloPairSum;
  22.  
  23. moduloPairSum[(numbers[0]+numbers[1])%d]++;
  24.  
  25. for(int i=2; i<n; i++){
  26. int numModulo = numbers[i]%d;
  27. int reqModulo = (d-numModulo)%d;
  28.  
  29. if(moduloPairSum.find(reqModulo) != moduloPairSum.end())answer += moduloPairSum[reqModulo];
  30.  
  31. for(int j=0; j<i; j++){
  32. moduloPairSum[(numbers[i] + numbers[j])%d]++;
  33. }
  34. }
  35.  
  36.  
  37.  
  38. cout<<answer;
  39.  
  40. return 0;
  41. }
Success #stdin #stdout 0s 5324KB
stdin
5 5
3 3 4 7 8
stdout
3