Pagini recente » Cod sursa (job #1290587) | Cod sursa (job #2011267) | Cod sursa (job #2384787) | Cod sursa (job #343025) | Cod sursa (job #1882097)
#include <fstream>
using namespace std;
ifstream fin("xormax.in");
ofstream fout("xormax.out");
int curr[25];
int v[100100];
int h[1<<22];
int n,mx,start,stop,i,j,nod;
int main()
{
fin>>n;
mx = -1;
for(i=1; i<=n; ++i)
{
fin>>v[i];
v[i]^=v[i-1];
for(j=20; j>=0; --j)
curr[20-j]=(bool)(v[i]&(1<<j));
nod=1;
for(j=0; j<21; ++j)
if(h[(nod<<1)+!curr[i]])
nod=(nod<<1)+!curr[i];
else
nod=(nod<<1)+curr[i];
j=h[nod];
if(v[j]^v[i]>mx)
{
mx=v[j]^v[i];
start=j+1;
stop=i;
}
nod=1;
for(j=0; j<21; ++j)
h[nod=(nod<<1)+curr[j]]=i;
}
fout<<mx<<' '<<start<<' '<<stop;
}