# HackerEarth A XOR operation problem solution

In this HackerEarth A XOR operation problem solution, You are given a set S of distinct positive integers of size n (n is always even). Print the minimum positive integer k that is greater than 0 such that after replacing each element e of the set S with e xor k, set S remains the same. Print -1 if there is no such k.

## HackerEarth A XOR operation problem solution.

`#include<bits/stdc++.h>using namespace std;#define int long long intint32_t main(){    ios_base::sync_with_stdio(false);    cin.tie(NULL);    int t;    cin>>t;    while(t--){        int n;        cin>>n;        vector<int> nums(n);        for(int i=0;i<n;i++)        {            cin>>nums[i];        }        unordered_map<int,int> mp;        int x=0LL;        for (int i : nums)        {                x^=i;            mp[i]=1;        }        int flag=0;        for(int i : nums)        {            int temp=i^x;            if(mp[temp]!=1)            {                flag=1;            }        }        if(flag){            cout<<-1<<'\n';        }        else{            cout<<x<<'\n';        }    }}`

### Second solution

`t = int(input())while t > 0:    t -= 1    n = int(input())    s = set(map(int, input().split()))    a = list(s)    x = a[0]    done = False    for y in a[1:]:        if x == y:            continue        k = x ^ y        if all(x ^ k in s for x in a):            print(k)            done = True            break    if not done:        print(-1)`