//这个直接用树状数组维护,因为楼兰图腾也是这种做法
//采用计数型树状数组
#include<iostream>
#include<algorithm>
#include<cstring>
#include<map>
#define int long long
using namespace std;
const int N = 3e5+10;
int tr[N*2];
int n,w[N];
int l[N],r[N],idx;
map<int,int>S;
int get(int x){
if(!S.count(x))S[x]=++idx;
return S[x];
// return x;
}
int lowbit(int x){
return x&-x;
}
void add(int x,int c){
for(int i=x;i<=n;i+=lowbit(i))tr[i]+=c;
}
int sum(int x){
int ans=0;
for(int i=x;i;i-=lowbit(i))ans+=tr[i];
return ans;
}
signed main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>w[i];
// sort(w+1,w+1+n);
//枚举左边比它大的
for(int i=1;i<=n;i++){
l[i]=sum(get(w[i])-1);
add(get(w[i]),1);
}
memset(tr,0,sizeof tr);
for(int i=n;i>=1;i--){
r[i]=sum(get(n))-sum(get(w[i]));
add(get(w[i]),1);
}
int ans=0;
for(int i=2;i<n;i++){
ans+=l[i]*r[i];
}
cout<<ans;
return 0;
}