import bisect class BIT: # 0-idx # (i, j)は両端点含む。 def __init__(self, n): self.n = n self.a = [0] * (n + 1) def add(self, i, x): i += 1 while i <= self.n: self.a[i] += x i += i & (-i) def sum_sub(self, i): i += 1 s = 0 while i > 0: s += self.a[i] i -= i & (-i) return s def sum(self, i, j): return self.sum_sub(j) - self.sum_sub(i - 1) # a[0]+a[1]+...+a[i] >= x となる最小のiを返す (a[k] >= 0が前提) def lower_bound(self, x): if x <= 0: return 0 i = 0 r = 1 while r < self.n: r <<= 1 length = r while length > 0: if i + length <= self.n and self.a[i + length] < x: x -= self.a[i + length] i += length length >>= 1 return i N=int(input()) A=list(map(int, input().split())) bit=BIT(N) As = sorted(set(A)) ans = 0 for i in range(N): idx = bisect.bisect_left(As, A[i]) if idx + 1 < N: ans += bit.sum(idx+1, N-1) bit.add(idx, 1) print(ans)