#include <bits/stdc++.h>
using namespace std;
long long ret(int a,int b){
int m1=0,m2=0;
int aa=a,bb=b;
unsigned long long ans1=a,ans2=b;
int ma=0,mb=0;
while(aa){
ma++;
aa>>=1;
}
while(bb){
mb++;
bb>>=1;
}
aa=a,bb=b;
while(mb--){
ans1<<=1;
ans1|=1&&((1<<mb)&bb);
}
while(ma--){
ans2<<=1;
ans2|=1&&((1<<ma)&aa);
}
long long x=ans1,y=ans2;
return (x>y)?(x-y):(y-x);
}
int main(){
int t;
cin>>t;
int T=t;
int nn=0;
while(t--){
int n;
cin>>n;
int mx=0,mn=(1<<30);
long long ans=0;
vector<int> a(n);
nn+=n;
while(n--){
cin>>a[n];
mx=max(mx,a[n]);
}
if(nn>1000){
for(int i=0;i<a.size();i++){
// for(int j=i+1;j<a.size();j++)
// ans=max(ans,ret(a[i],a[j]));
ans=max(ans,ret(a[i],mx));
}
}
else{
for(int i=0;i<a.size();i++){
for(int j=i+1;j<a.size();j++)
ans=max(ans,ret(a[i],a[j]));
}
}
cout<<ans<<'\n';
}
return 0;
}
Comments
Post a Comment