#include <stdio.h>

#define INFTY 1000000001

int A[500000];
int n;

typedef long long llong;

llong merge(int A[],int left,int mid,int right) {

	llong sum = 0;
	int i,k,j,n1,n2;

	n1 = mid - left;
	n2 = right - mid;

	//L[0...n1], R[0...n2] を生成

	int L[n1+1], R[n2+1];

	for(i=0; i<n1; i++) {
		L[i]=A[left+i];
	}

	for(i=0; i<n2; i++) {
		R[i]=A[mid+i];
	}

	L[n1] = INFTY;
	R[n2] = INFTY;
	
	i = 0;
	j = 0;

	for (k = left; k < right; k++) {
		if (L[i] <= R[j]) {
			A[k] = L[i];
			i = i + 1;
		}
		else {
			A[k] = R[j];
			j = j + 1;
			sum+=n1-i;
		}

	}
	return sum;
}

llong mergeSort(int A[], int left, int right) {
	
	int mid;
	llong v1,v2,v3;
	
	if(left+1 < right) {
		mid = (left + right)/2;
		v1=mergeSort(A, left, mid);
		v2=mergeSort(A, mid, right);
		v3=merge(A, left, mid, right);
		return v1+v2+v3;
	}
	else return 0;
}

int main(void) {

	int i;
	scanf("%d",&n);

	for(i=0; i<n; i++) scanf("%d",&A[i]);
	
	llong ans = mergeSort(A,0,n);
	printf("%lld\n", ans);
	
	return 0;
}


