#include <bits/stdc++.h>
#define int long long
int h[300100];
int l[300100];
int r[300100];
int ans=0;
int fwk[300100];
void update(int idx){
while(idx<=300000)fwk[idx]+=1,idx+=idx&-idx;
}
int get(int idx,int ans=0){
while(idx>0)ans+=fwk[idx],idx-=idx&-idx;return ans;
}
std::set<int> com;
std::vector<int> comv;
signed main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int n;
std::cin >> n;
for(int i=0;i<n;i++){
std::cin >> h[i];
com.insert(h[i]);
}
for(auto num:com)comv.push_back(num);
for(int i=0;i<n;i++){
h[i]=1+std::lower_bound(comv.begin(),comv.end(),h[i])-comv.begin();
}
for(int i=0;i<n;i++){
l[i]=get(h[i]-1);
update(h[i]);
}
for(int i=0;i<=300000;i++)fwk[i]=0;
for(int i=n-1;i>=0;i--){
r[i]=get(h[i]-1);
update(h[i]);
}
for(int i=1;i<n-1;i++){
ans+=l[i]*r[i];
}
std::cout << ans;
}