Minimum AND xor OR

You are given an array A of N integers. Determine the minimum value of the following expression for all valid i,j:

(Ai and Aj) xor (Ai or Aj), where ij.

Example:

Input:  n = 3, a={2,4,7}
Output: 3

Approach

C++

#include <bits/stdc++.h>
using namespace std;

long long minAndXorOr(long long nvector<long long&a)
{

    sort(a.begin(), a.end());
    long long ans = INT_MAX;
    for (long long i = 0; i < n - 1; i++)
    {
        ans = min(ans, a[i] ^ a[i + 1]);
    }
    return ans;
}
int main()
{

    long long n = 3;
    vector<long long> a = {247};

    cout << minAndXorOr(n, a);

    return 0;
}


No comments:

Post a Comment