import java.util.*;
import java.io.*;
public class Main {
static int N = 500010;
static int[] ranks = new int[N];
static int[] tree = new int[N];
// pair<val,index>
static List<int[]> a = new ArrayList<>();
public static void main(String[] args) throws IOException{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(in.readLine()),val,idx;
String[] s = in.readLine().split(" ");
a.add(new int[]{0,0});
for (int i = 1; i<=n; ++i) {
val = Integer.parseInt(s[i-1]);
idx = i;
a.add(new int[]{val,idx});
}
// 排序
Collections.sort(a,(o1,o2)->o1[0]==o2[0]?o1[1]-o2[1]:o1[0]-o2[0]);
for (int i = 1;i<=n; ++i) {
ranks[a.get(i)[1]] = i;
}
long res = 0;
for (int i = n; i>=1; --i) {
int cnt = query(ranks[i]);
res+=cnt;
update(ranks[i],1,n);
}
out.write(res + "\n");
out.flush();
out.close();
in.close();
}
public static int lowbit(int x) {
return x&(-x);
}
public static void update(int x,int y,int n){
for (int i = x; i<=n; i+=lowbit(i)) {
tree[i]+=y;
}
}
public static int query(int n) {
int res = 0;
for (int i = n; i!=0; i-=lowbit(i)) {
res += tree[i];
}
return res;
}
}