B题求异或最小值,即同或最大值(过了94,哭了)Help
#include<iostream>
#include<map>
#include<algorithm>
using namespace std;
unsigned int a[200020],ni=0x3f3f3f3f;
unsigned int n,m,pan=0;
map<unsigned int,unsigned int> mp;
int main()
{
cin>>n>>m;
for(long long i=1;i<=n;i++)
{
cin>>a[i];
mp[a[i]]++;
if(mp[a[i]]>=2){pan=1;}
}
sort(a+1,a+1+n);
if(pan)cout<<(1<<m)-1<<endl;
else{
for(long long i=1;i<n;i++)
{
ni=min(ni,a[i]^a[i+1]);
}
cout<<(1<<m)-1-ni<<endl;
}
}