def get_i() #空白区切の入力を数値(整数)の配列で返す
  return gets.chomp.split(" ").map(&:to_i)
end
def get_f() #空白区切の入力を数値(実数)の配列で返す
  return gets.chomp.split(" ").map(&:to_f)
end
def get() #空白区切の入力を文字列の配列で返す
  return gets.chomp.split(" ")
end
def get_nsp() #入力されたものを一文字ずつに区切った文字列の配列で返す
  return gets.chomp.split("")
end
def yn_judge(bool,y="Yes",n="No") #boolに真偽を投げることで、trueならy、falseならnの値を出力する
  return bool ? y : n 
end
def array(size1,init=nil,size2=-1) #size2に二次元配列時の最初の要素数、size1に次の配列の大きさ、initに初期値を投げることでその配列を返す
  if size2==-1
    return Array.new(size1){init}
  else
    return Array.new(size2){Array.new(size1){init}}
  end
end

class BIT
    attr_accessor:bit,:n
    def initialize(n)
        @n=n
        @bit=array(@n+1,0)
    end

    def add(i,x)
      while i<=@n
          @bit[i]+=x
          i+=i&-i
      end
    end

    def sum(i)
        s=0
        while i>0
            s+=@bit[i]
            i-=i&-i
        end
        return s
    end
end

N=gets.to_i
A=get_i
exc={}
A.sort.each_with_index do|a_,i|
  exc[a_]=i+1
end
b=array(N)
N.times do|i|
    b[i]=exc[A[i]]
end
bit=BIT.new(N)
ans=0
b.each_with_index do|b_,i|
  ans+=i-bit.sum(b_) 
  bit.add(b_,1)
end
puts ans
