#include <iostream>
#include <vector>
using namespace std;
long long mergeAndCount(vector<int>& arr, vector<int>& temp, int left, int mid, int right) {
int i = left; // 左子數列的起始點
int j = mid; // 右子數列的起始點
int k = left; // 合併後數列的起始點
long long inv_count = 0;
// 合併左子數列和右子數列
while (i <= mid - 1 && j <= right) {
if (arr[i] <= arr[j]) {
temp[k++] = arr[i++];
} else {
temp[k++] = arr[j++];
inv_count += (mid - i); // 計算逆序數對
}
}
// 複製剩餘的左子數列元素(如果有)
while (i <= mid - 1) {
temp[k++] = arr[i++];
}
// 複製剩餘的右子數列元素(如果有)
while (j <= right) {
temp[k++] = arr[j++];
}
// 複製合併後數列到原數列中
for (i = left; i <= right; i++) {
arr[i] = temp[i];
}
return inv_count;
}
long long mergeSortAndCount(vector<int>& arr, vector<int>& temp, int left, int right) {
long long inv_count = 0;
if (right > left) {
int mid = (left + right) / 2;
inv_count += mergeSortAndCount(arr, temp, left, mid);
inv_count += mergeSortAndCount(arr, temp, mid + 1, right);
inv_count += mergeAndCount(arr, temp, left, mid + 1, right);
}
return inv_count;
}
long long calculateDiscomfort(vector<int>& arr) {
int n = arr.size();
vector<int> temp(n);
long long inv_count = mergeSortAndCount(arr, temp, 0, n - 1);
long long discomfort = 0;
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if (arr[i] > arr[j]) {
discomfort += arr[i] + arr[j];
}
}
}
return discomfort;
}
int main() {
int n;
cin >> n;
vector<int> arr(n);
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
cout << calculateDiscomfort(arr) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmxvbmcgbG9uZyBtZXJnZUFuZENvdW50KHZlY3RvcjxpbnQ+JiBhcnIsIHZlY3RvcjxpbnQ+JiB0ZW1wLCBpbnQgbGVmdCwgaW50IG1pZCwgaW50IHJpZ2h0KSB7CiAgICBpbnQgaSA9IGxlZnQ7ICAgIC8vIOW3puWtkOaVuOWIl+eahOi1t+Wni+m7ngogICAgaW50IGogPSBtaWQ7ICAgICAvLyDlj7PlrZDmlbjliJfnmoTotbflp4vpu54KICAgIGludCBrID0gbGVmdDsgICAgLy8g5ZCI5L215b6M5pW45YiX55qE6LW35aeL6bueCiAgICBsb25nIGxvbmcgaW52X2NvdW50ID0gMDsKCiAgICAvLyDlkIjkvbXlt6blrZDmlbjliJflkozlj7PlrZDmlbjliJcKICAgIHdoaWxlIChpIDw9IG1pZCAtIDEgJiYgaiA8PSByaWdodCkgewogICAgICAgIGlmIChhcnJbaV0gPD0gYXJyW2pdKSB7CiAgICAgICAgICAgIHRlbXBbaysrXSA9IGFycltpKytdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRlbXBbaysrXSA9IGFycltqKytdOwogICAgICAgICAgICBpbnZfY291bnQgKz0gKG1pZCAtIGkpOyAvLyDoqIjnrpfpgIbluo/mlbjlsI0KICAgICAgICB9CiAgICB9CgogICAgLy8g6KSH6KO95Ymp6aSY55qE5bem5a2Q5pW45YiX5YWD57Sg77yI5aaC5p6c5pyJ77yJCiAgICB3aGlsZSAoaSA8PSBtaWQgLSAxKSB7CiAgICAgICAgdGVtcFtrKytdID0gYXJyW2krK107CiAgICB9CgogICAgLy8g6KSH6KO95Ymp6aSY55qE5Y+z5a2Q5pW45YiX5YWD57Sg77yI5aaC5p6c5pyJ77yJCiAgICB3aGlsZSAoaiA8PSByaWdodCkgewogICAgICAgIHRlbXBbaysrXSA9IGFycltqKytdOwogICAgfQoKICAgIC8vIOikh+ijveWQiOS9teW+jOaVuOWIl+WIsOWOn+aVuOWIl+S4rQogICAgZm9yIChpID0gbGVmdDsgaSA8PSByaWdodDsgaSsrKSB7CiAgICAgICAgYXJyW2ldID0gdGVtcFtpXTsKICAgIH0KCiAgICByZXR1cm4gaW52X2NvdW50Owp9Cgpsb25nIGxvbmcgbWVyZ2VTb3J0QW5kQ291bnQodmVjdG9yPGludD4mIGFyciwgdmVjdG9yPGludD4mIHRlbXAsIGludCBsZWZ0LCBpbnQgcmlnaHQpIHsKICAgIGxvbmcgbG9uZyBpbnZfY291bnQgPSAwOwogICAgaWYgKHJpZ2h0ID4gbGVmdCkgewogICAgICAgIGludCBtaWQgPSAobGVmdCArIHJpZ2h0KSAvIDI7CgogICAgICAgIGludl9jb3VudCArPSBtZXJnZVNvcnRBbmRDb3VudChhcnIsIHRlbXAsIGxlZnQsIG1pZCk7CiAgICAgICAgaW52X2NvdW50ICs9IG1lcmdlU29ydEFuZENvdW50KGFyciwgdGVtcCwgbWlkICsgMSwgcmlnaHQpOwogICAgICAgIGludl9jb3VudCArPSBtZXJnZUFuZENvdW50KGFyciwgdGVtcCwgbGVmdCwgbWlkICsgMSwgcmlnaHQpOwogICAgfQogICAgcmV0dXJuIGludl9jb3VudDsKfQoKbG9uZyBsb25nIGNhbGN1bGF0ZURpc2NvbWZvcnQodmVjdG9yPGludD4mIGFycikgewogICAgaW50IG4gPSBhcnIuc2l6ZSgpOwogICAgdmVjdG9yPGludD4gdGVtcChuKTsKICAgIGxvbmcgbG9uZyBpbnZfY291bnQgPSBtZXJnZVNvcnRBbmRDb3VudChhcnIsIHRlbXAsIDAsIG4gLSAxKTsKCiAgICBsb25nIGxvbmcgZGlzY29tZm9ydCA9IDA7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGZvciAoaW50IGogPSBpICsgMTsgaiA8IG47IGorKykgewogICAgICAgICAgICBpZiAoYXJyW2ldID4gYXJyW2pdKSB7CiAgICAgICAgICAgICAgICBkaXNjb21mb3J0ICs9IGFycltpXSArIGFycltqXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gZGlzY29tZm9ydDsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgbjsKICAgIGNpbiA+PiBuOwogICAgdmVjdG9yPGludD4gYXJyKG4pOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBjaW4gPj4gYXJyW2ldOwogICAgfQoKICAgIGNvdXQgPDwgY2FsY3VsYXRlRGlzY29tZm9ydChhcnIpIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0K