using namespace std;
typedef long long ll;
const int N=200010;
int n,a[N],tree[N],G[N],l[N];
int lowbit(int x){
return x&-x;
}void add(int x,int c){
for(int i=x;i<=n;i+=lowbit(i))tree[i]+=c;
}int sum(int x){
int r=0;
for(int i=x;i;i-=lowbit(i))r+=tree[i];
return r;
}int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
for(int i=1;i<=n;i++){
G[i]=sum(n)-sum(a[i]);
l[i]=sum(a[i]-1);
add(a[i],1);
}memset(tree,0,sizeof tree);
ll r1=0,r2=0;
for(int i=n;i;i--){
r1+=G[i]*(ll)(sum(n)-sum(a[i]));
r2+=l[i]*(ll)(sum(a[i]-1));
add(a[i],1);
}printf("%lld %lld",r1,r2);
return 0;
}