#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;
}