#include<iostream>
using namespace std;
const int N = 5e6 + 10;
int a[N], n;
long long int res;
void mergesort(int l, int r)
{
if (r <= l) return;
int mid = (l + r) / 2;
mergesort(l, mid);
mergesort(mid + 1, r);
int tem[N], tem2[N];
for (int i = 1; i <= mid - l + 1; i++) {
tem[i] = a[i + l - 1];
}
for (int i = 1; i <= r - mid; i++) {
tem2[i] = a[i + mid];
}
int ptr1 = 1, ptr2 = 1, cur = l;
while (ptr1 <= mid - l + 1 && ptr2 <= r - mid) {
if (tem[ptr1] <= tem2[ptr2]) {
a[cur++] = tem[ptr1++];
}
else {
a[cur++] = tem2[ptr2++];
res = res + mid - ptr1 + 1;
}
}
while (ptr1 <= mid - l + 1) {
a[cur++] = tem[ptr1++];
}
while (ptr2 <= r - mid) {
a[cur++] = tem2[ptr2++];
}
return;
}
int main()
{
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
mergesort(1, n);
cout << res << endl;
return 0;
}