#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
int countPairs(const vector<int>& arr, int k) {
unordered_map<int, int> freq;
int pairCount = 0;
for (int num : arr) {
// Since A - num = k, we are looking for A = num + k
int complement = num + k;
// If we've seen the complement before, add its frequency
if (freq.count(complement)) {
pairCount += freq[complement];
}
// Add the current number to our frequency map
freq[num]++;
}
return pairCount;
}
int main() {
vector<int> arr = {5, 2, 5, 2};
int k = 3;
cout << "Total valid pairs: " << countPairs(arr, k) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgY291bnRQYWlycyhjb25zdCB2ZWN0b3I8aW50PiYgYXJyLCBpbnQgaykgewogICAgdW5vcmRlcmVkX21hcDxpbnQsIGludD4gZnJlcTsKICAgIGludCBwYWlyQ291bnQgPSAwOwoKICAgIGZvciAoaW50IG51bSA6IGFycikgewogICAgICAgIC8vIFNpbmNlIEEgLSBudW0gPSBrLCB3ZSBhcmUgbG9va2luZyBmb3IgQSA9IG51bSArIGsKICAgICAgICBpbnQgY29tcGxlbWVudCA9IG51bSArIGs7IAogICAgICAgIAogICAgICAgIC8vIElmIHdlJ3ZlIHNlZW4gdGhlIGNvbXBsZW1lbnQgYmVmb3JlLCBhZGQgaXRzIGZyZXF1ZW5jeQogICAgICAgIGlmIChmcmVxLmNvdW50KGNvbXBsZW1lbnQpKSB7CiAgICAgICAgICAgIHBhaXJDb3VudCArPSBmcmVxW2NvbXBsZW1lbnRdOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBBZGQgdGhlIGN1cnJlbnQgbnVtYmVyIHRvIG91ciBmcmVxdWVuY3kgbWFwCiAgICAgICAgZnJlcVtudW1dKys7CiAgICB9CgogICAgcmV0dXJuIHBhaXJDb3VudDsKfQoKaW50IG1haW4oKSB7CiAgICB2ZWN0b3I8aW50PiBhcnIgPSB7NSwgMiwgNSwgMn07CiAgICBpbnQgayA9IDM7CgogICAgY291dCA8PCAiVG90YWwgdmFsaWQgcGFpcnM6ICIgPDwgY291bnRQYWlycyhhcnIsIGspIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0=