Cod sursa(job #3317813)

Utilizator Cezar2009Cezar Mihai Titihazan Cezar2009 Data 25 octombrie 2025 13:50:10
Problema Xor Max Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<fstream>
using namespace std;
ifstream fin("xormax.in");
ofstream fout("xormax.out");
int v[100005],n,x,ix=0,rez=0,st=1,dr=1,i,j,bit,inv;
struct Nod{int ind;Nod*ch[2];Nod():ind(0),ch{}{}};
int main(){
Nod*rad=new Nod();Nod*nod=rad;
for(i=20;i>=0;--i){bit=(ix>>i)&1;if(!nod->ch[bit])nod->ch[bit]=new Nod();nod=nod->ch[bit];}nod->ind=0;
fin>>n;
for(i=1;i<=n;++i){
fin>>x;ix^=x;v[i]=ix;
nod=rad;for(j=20;j>=0;--j){bit=(ix>>j)&1;if(!nod->ch[bit])nod->ch[bit]=new Nod();nod=nod->ch[bit];}nod->ind=i;
Nod*q=rad;for(j=20;j>=0;--j){bit=(ix>>j)&1;inv=bit^1;if(q->ch[inv])q=q->ch[inv];else q=q->ch[bit];}
j=q->ind;if((v[i]^v[j])>rez){rez=v[i]^v[j];st=j+1;dr=i;}}
fout<<rez<<" "<<st<<" "<<dr;
}