class BIT: def __init__(self, n): self.size = n self.tree = [0] * (n + 1) def add(self, i, x): """index i (1-indexed) に x を加算""" while i <= self.size: self.tree[i] += x i += i & -i def sum(self, i): """1 から index i (1-indexed) までの区間和を取得""" s = 0 while i > 0: s += self.tree[i] i -= i & -i return s def query(self, l, r): """区間 [l, r] (1-indexed) の和を取得""" return self.sum(r) - self.sum(l - 1) N = int(input()) A = list(map(int, input().split())) B = [] for i in range(N): B.append([A[i], i]) C = sorted(B, key = lambda x: (x[0], x[1]) ) bit = BIT(N) ANS = 0 # 値が小さい順に処理 for val, original_idx in C: # 1-indexed に変換 idx = original_idx + 1 # 自分より右側(idx ~ N)にすでに処理された(自分より小さい)要素が何個あるか ANS += bit.query(idx + 1, N) # 自分の位置に 1 を加算 bit.add(idx, 1) print(ANS)