看着题解做的,但是不知道为什么挂了。
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e7+5;
signed n,a[N],stk[N],top=1,ls[N],rs[N];
int ans1,ans2;
signed main(){
ios::sync_with_stdio(0);
cin.tie();cout.tie();
cin>>n;
stk[1]=1;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=2;i<=n;i++){
if(a[stk[top]]>a[i]&&top)top--;
if(!top)ls[i]=stk[top+1];
else ls[i]=rs[stk[top]],rs[stk[top]]=i;
stk[++top]=i;
}
for(int i=1;i<=n;i++){
ans1^=(1ll*i*(ls[i]+1));
ans2^=(1ll*i*(rs[i]+1));
}
cout<<ans1<<" "<<ans2;
return 0;
}