#include<iostream>#include<algorithm>usingnamespace std;typedeflonglong ll;constint N =5e5+10;int Rank[N], tr[N];int n;structnode{int num, val;}a[N];boolcmp(node a, node b){if(a.val == b.val)return a.num < b.num;return a.val < b.val;}intlowbit(int x){return x &(-x);}voidadd(int x,int c){for(int i = x; i <= n; i +=lowbit(i)) tr[i]+= c;}
ll sum(int x){
ll res =0;for(int i = x; i; i -=lowbit(i)) res += tr[i];return res;}intmain(){scanf("%d",&n);for(int i =1; i <= n; i ++)scanf("%d",&a[i].val), a[i].num = i;sort(a +1, a + n +1, cmp);for(int i =1; i <= n ; i ++)
Rank[a[i].num]= i;
ll ans =0;for(int i =1; i <= n; i ++){add(Rank[i],1);
ans += i -sum(Rank[i]);}printf("%lld\n", ans);return0;}