const rl = require("readline").createInterface({
  input: process.stdin,
});
const iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
  const n = parseInt(await readline());
  const lineArr = (await readline()).split(" ").map(Number);
  if (lineArr.length !== n) {
    console.log("输入的长度和数组长度不匹配");
    rl.close();
    return;
  }
  //输出结果
  console.log(calcSmallSum(lineArr));
  rl.close();
})();

function calcSmallSum(arr) {
  if (arr.length < 2) return 0;
  return sort(arr, 0, arr.length - 1);
}

function sort(arr, left, right) {
  if (left === right) {
    return 0;
  }
  const mid = (left + right) >> 1;
  const leftSum = sort(arr, left, mid);
  const rightSum = sort(arr, mid + 1, right);
  const mergeSun = merge(arr, left, mid, right);
  return leftSum + rightSum + mergeSun;
}

function merge(arr, left, mid, right) {
  const result = [];
  let totalSum = 0;
  let l = left;
  let r = mid + 1;

  while (l <= mid && r <= right) {
    if (arr[l] <= arr[r]) {
      totalSum += arr[l] * (right - r + 1);
      result.push(arr[l++]);
    } else {
      result.push(arr[r++]);
    }
  }

  while (l <= mid) {
    result.push(arr[l++]);
  }

  while (r <= right) {
    result.push(arr[r++]);
  }

  for (let i = left; i <= right; i++) {
    arr[i] = result.shift();
  }
  return totalSum;
}