Pagini recente » Cod sursa (job #864849) | Cod sursa (job #2274779) | Cod sursa (job #1278693) | Cod sursa (job #2711748) | Cod sursa (job #3264840)
#include <fstream>
using namespace std;
ifstream cin("xormax.in");
ofstream cout("xormax.out");
#define int long long
int v[100001];
int c[21];
int trie[4194305];
signed main()
{
int n,i,j,nod,rasp=-1,st,dr,alt=0;
cin>>n;
for(i=2;i<(1<<22);i++) trie[i]=-1;
for(i=1;i<22;i++) trie[i]=0;
for(i=1;i<=n;i++){
cin>>v[i];
v[i]^=v[i-1];
for(j=0;j<21;j++){
c[j]=(bool)(v[i]&(1<<(20-j)));
}
nod=1;
for(j=0;j<21;j++){
if(trie[2*nod+!c[j]>0]) nod=2*nod+!c[j];
else nod=2*nod+c[j];
}
j=trie[nod];
if((v[i]^v[j])>rasp){
rasp=(v[i]^v[j]);
st=j+1;dr=i;
}
alt++;
}
cout<<rasp<<" "<<st<<" "<<dr<<" "<<alt;
return 0;
}