fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <unordered_map>
  4.  
  5. using namespace std;
  6.  
  7. int countPairs(const vector<int>& arr, int k) {
  8. unordered_map<int, int> freq;
  9. int pairCount = 0;
  10.  
  11. for (int num : arr) {
  12. // Since A - num = k, we are looking for A = num + k
  13. int complement = num + k;
  14.  
  15. // If we've seen the complement before, add its frequency
  16. if (freq.count(complement)) {
  17. pairCount += freq[complement];
  18. }
  19.  
  20. // Add the current number to our frequency map
  21. freq[num]++;
  22. }
  23.  
  24. return pairCount;
  25. }
  26.  
  27. int main() {
  28. vector<int> arr = {5, 2, 5, 2};
  29. int k = 3;
  30.  
  31. cout << "Total valid pairs: " << countPairs(arr, k) << endl;
  32.  
  33. return 0;
  34. }
Success #stdin #stdout 0s 5300KB
stdin
Standard input is empty
stdout
Total valid pairs: 3