Pairs with given XOR

 Given an array A[]  of size N of distinct positive integers and a number X, find the number of pairs of integers in the array whose XOR is equal to X.


Example 1:

Input: 
N = 6
A[] = {5, 4, 10, 15, 7, 6}
X = 5
Output: 1
Explanation: (10 ^ 15) = 5


Example 2:

Input: 
N = 6
A[] = {3, 6, 8, 10, 15, 50}
X = 5
Output: 2
Explanation: (3 ^ 6) = 5 and (10 ^ 15) = 5 






c++ implementation:

int countPair(int n, int a[], int x)
    {
        unordered_map<int,int>m;
        int c=0;
        for(int i=0;i<n;i++)
        {
            if(m.find(x^a[i])!=m.end())
            c=c+m[x^a[i]];
            
            m[a[i]]++;
        }
     return c;
    }
Time Complexity: O(n) 

space Complexity: O(n) 




 

darkmode