注意一下初始化、
#include <bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int n,st,ed,ans,a[N],sum[N];
int tot=1,ch[N*21][2],val[N*21];
void ins(int s) {
int p=1;
for(int i=21;i>=0;i--) {
int q=(sum[s]>>i)&1;
if(!ch[p][q]) ch[p][q]=++tot;
p=ch[p][q];
}
val[p]=s;
}
int find(int s) {
int p=1;
for(int i=21;i>=0;i--) {
int q=((sum[s]>>i)&1);
if(!ch[p][1^q]) p=ch[p][q];
else p=ch[p][1^q];
}
return val[p];
}
int main() {
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]),sum[i]=sum[i-1]^a[i];
ins(1);ans=sum[1],st=1,ed=1;
for(int i=2;i<=n;i++) {
int p=find(i);
if((sum[i]^sum[p])>ans) ans=sum[i]^sum[p],st=p+1,ed=i;
ins(i);
}
printf("%d %d %d",ans,st,ed);
return 0;
}