package main
import "fmt"
var (
res int64
)
func main() {
res = 0
var (
n int
)
fmt.Scan(&n)
arr := make([]int, n)
for i := 0; i < n; i++ {
fmt.Scan(&arr[i])
}
smallSum(arr, 0, n-1)
fmt.Println(res)
}
func smallSum(arr []int, l int, r int) {
if r == l {
return
}
mid := (r-l)/2 + l
smallSum(arr, l, mid)
smallSum(arr, mid+1, r)
merge(arr, l, mid, r)
}
func merge(arr []int, l int, mid int, r int) {
help := make([]int, r-l+1)
i := l
j := mid + 1
idx := 0
for i <= mid && j <= r {
if arr[i] <= arr[j] {
res += int64((r - j + 1) * arr[i])
help[idx] = arr[i]
i++
} else {
help[idx] = arr[j]
j++
}
idx++
}
for i <= mid {
help[idx] = arr[i]
i++
idx++
}
for j <= r {
help[idx] = arr[j]
j++
idx++
}
for i := 0; i < len(help); i++ {
arr[i+l] = help[i]
}
}