样例过了,但第一个点没过
#include<bits/stdc++.h>
using namespace std;
struct xian{
int a[1000010],num=0;
int top(){
return a[num];
}
void push(int b){
a[++num]=b;
}
void pop(){
num--;
}
bool empty(){
return !(num>0);
}
}di;
int n,c,a[1000010],b[1000010],num;
int main(){
cin>>n;
for(int i=1; i<=n; i++){
cin>>a[i];
while(a[di.top()]<=a[i]&&!di.empty()){
num=num^di.top();
di.pop();
}
num=num^i;
di.push(i);
b[i]=num;
}
for(int i=1; i<=n; i++)
cout<<b[i]<<endl;
return 0;
}