#include "stdio.h"
#define N 100005
int n;
struct node
{
int i;
int low;
int high;
}a[N],b[N];
void Merge(node *a,int l,int r)
{
if(l==r) return ;
int i,j,k,mid;
mid = (l+r)/2;
Merge(a,l,mid);
Merge(a,mid+1,r);
int tt=0;
for(i=l,j=mid+1,k=0;i<=mid && j<=r; )
{
if(a[i].i<=a[j].i)
{
a[i].low+=tt;
b[k++] = a[i++];
}
else if(a[i].i>a[j].i){
a[j].high += mid-i+1;
b[k++] = a[j];
j++;
tt++;
}
}
while(i<=mid){
a[i].low+=tt;
b[k++] = a[i++];
}
while(j<=r)
b[k++] = a[j++];
for(i=l,j=0; i<=r; i++)
a[i] = b[j++];
}
int main()
{
int i,k,w;
long long ans,t;
a[0].i=-1;
scanf("%d",&n);
for(i=1; i<=n; i++)
{
scanf("%d",&a[i].i);
a[i].high = 0;
a[i].low = 0;
}
Merge(a,1,n);
ans = 0;
for(i=1; i<=n; i++)
{
t = a[i].high + a[i].low;
ans += t*(t+1)/2;
}
printf("%I64d\n",ans);
return 0;
}