暂未发现hack.
#include<iostream>
using namespace std;
const int MAXN=1e7+5;
#define ll long long
int n;
int p[MAXN];
ll ls[MAXN],rs[MAXN];
int st[MAXN];
int top=0;
inline int read(){
char c=getchar();int r=0;
while(c>'9'||c<'0') c=getchar();
while(c>='0'&&c<='9') r=10*r+c-'0',c=getchar();
return r;
}
int main(){
n=read();
for(int i=1;i<=n;i++)
p[i]=read();
for(int i=1;i<=n;i++){
while(top&&p[st[top]]>p[i])
ls[i]=st[top--];
rs[st[top]]=i;
st[++top]=i;
}
//for(int i=1;i<=n;i++)
// cout<<ls[i]<<" "<<rs[i]<<endl;
ll ans1=0,ans2=0;
for(ll i=1;i<=n;i++)
ans1^=i*(ls[i]+1),ans2^=i*(rs[i]+1);
cout<<ans1<<" "<<ans2;
return 0;
}