def merge(nums ,l ,r ,mids):
if l== r:
return 0
temp = [0] * (r - l + 1)
l1 = l
r1 = mids + 1
i = 0
res = 0
while l1 <= mids and r1 <= r:
if nums[l1] <= nums[r1]:
temp[i] = nums[l1]
res += nums[l1] * (r - r1 + 1)
l1 += 1
i += 1
else:
temp[i] = nums[r1]
i += 1
r1 += 1
if r1 <=r and i<len(temp):
for j in range(r1, r + 1):
temp[i] = nums[j]
i += 1
elif l1 <=mids and i<len(temp) :
for j in range(l1,mids+1):
temp[i] = nums[j]
i += 1
i = 0
for i in range(r - l + 1):
nums[i + l] = temp[i]
return res
def mergespit(nums, l, r):
mids = (l + r) // 2
if l > r:
return 0
if l == r:
return 0
res = mergespit(nums, l, mids)
res += mergespit(nums, mids + 1, r)
res += merge(nums, l, r, mids)
return res
def go(nums):
l = 0
r = len(nums) - 1
res = mergespit(nums, l, r)
return res
n = eval(input())
nums = list(map(int, input().split()))
a = go(nums)
print(a)