Pagini recente » Cod sursa (job #207222) | Cod sursa (job #3129172) | Cod sursa (job #460176) | Cod sursa (job #2791132) | Cod sursa (job #2886068)
#include <bits/stdc++.h>
using namespace std;
ifstream in("xormax.in");
ofstream out("xormax.out");
const int nmax = 100005;
int v[nmax];
int n;
pair<int,int> verif(int caut,int nr)
{
map<int,int> m;
int sum=0;
for(int i=1;i<=n;i++)
{
sum^=(v[i]&caut);
m[sum]=i;
if(m[sum^nr])return {m[sum^nr]+1,i};
}
return {0,0};
}
int main()
{
in>>n;
for(int i=1;i<=n;i++)
{
in>>v[i];
}
int nr=0, caut=0;
pair<int,int> p;
for(int i=22;i>=0;i--)
{
if(caut)caut|=1<<i;
p = verif(caut|(1<<i),nr|(1<<i));
if(p.first)
{
nr|=(1<<i);
caut|=(1<<i);
}
}
p = verif(caut,nr);
out<<nr<<' '<<p.first<<' '<<p.second<<'\n';
}