#include<bits/stdc++.h>
using namespace std;
long long s[5000005];
long long n;
long long t[5000005];
struct pai{
long long num,pm;
}p[5000005];
long long lowbit(long long i)//最小的1的位置
{
return i&(-i);
}
void update(long long i,long long x)//在s[i]以及上层数组上加上x
{
for(i;i <= n;i += lowbit(i))
{
s[i] += x;
}
}
long long query(long long i)
{
long long ans = 0;
for(i;i > 0;i -= lowbit(i))
{
ans += s[i];
}
return ans;
}
bool cmp(pai b,pai c)
{
if(b.num == c.num)
return b.pm < c.pm;
return b.num < c.num;
}
int main()
{
cin >> n;
memset(s,0,sizeof(0));
long long ans = 0;
for(long long i = 1;i <= n;i++)
{
cin >> p[i].num;
p[i].pm = i;
}
sort(p+1,p+n+1,cmp);
for(int i = 1;i <= n;i++)
{
t[p[i].pm] = i;
}
for(long long i = 1;i <= n;i++)
{
update(t[i],1);
ans += i - query(t[i]);
}
cout << ans;
return 0;
}