My issue
I am finding a bit such that some element in array have it as set and some as unset
But i am getting wrong ans
My code
#include <iostream>
#include<bits/stdc++.h>
#define ll long long int
#define mod 1000000007
using namespace std;
int main() {
cin.tie(0)->sync_with_stdio(false);
int t;cin>>t;
while(t--){
int n;cin>>n;
int x;cin>>x;
int A[n];
for(int i=0;i<n;i++)cin>>A[i];
int B[32]={0};
for(int i=0;i<n;i++){
for(int j=0;j<32;j++){
if(A[i]%2)B[j]++;
A[i]/=2;
}
}
int ans=0;
for(int i=0;i<32;i++){
if(B[i]!=n && B[i]!=0){
if(x&(1<<i)){
ans=max(ans,x^(1<<i));
}
else ans=x;
}
}
cout<<ans<<endl;
}
cerr << "Time : " << 1000 * ((double)clock()) / CLOCKS_PER_SEC << "ms" << endl;
return 0;
}
Problem Link: Largest Y Practice Coding Problem