#include
#include
#include
#include
#include
#include
#include
using namespace std;
using namespace std;
long long my_merge(vector&v, vector &tmp, int L, int mid, int R) {
int i = L, j = mid;
int idx = L;
long long inversions = 0;
while(i <= mid - 1 and j <= R) {
if(v[i] <= v[j]) {
tmp[idx++] = v[i++];
}
else {
tmp[idx++] = v[j++];
inversions += mid - i;
}
}
while(i <= mid - 1) {
tmp[idx++] = v[i++];
}
while(j <= R) {
tmp[idx++] = v[j++];
}
for(int id = L; id <= R; id++) {
v[id] = tmp[id];
}
return inversions;
}
long long merge_sort(vector &v, vector &tmp, int L, int R) {
int mid = (L + R) / 2;
long long inversions = 0;
if(R > L) {
inversions += merge_sort(v, tmp, L, mid);
inversions += merge_sort(v, tmp, mid + 1, R);
inversions += my_merge(v, tmp, L, mid + 1, R);
}
return inversions;
}
int main()
{
int n;
cin >> n;
vector v(n);
for(int i = 0; i < n; i++) {
cin >> v[i];
}
vector tmp(n);
cout << merge_sort(v, tmp, 0, n - 1) << endl;
return 0;
}