#include <bits/stdc++.h>
using namespace std;
#define int long long
vector<int> vec;
int n;
int recur(int l, int r) {
int ans = 0;
if (l + 1 >= r) {
return ans;
}
int mid = (l + r) / 2;
ans += recur(l, mid);
ans += recur(mid, r);
// Debugging output
// cout << l << " " << r << endl;
// Count inversions
int i = l, j = mid;
int k = 0;
int ans1 = 0;
while (j < r) {
if(i + 1 == mid || vec[j] > vec[i]){
// while(vec[k] < vec[j]){
// ans1 -= vec[k];
// k++;
// }
ans += vec[j] * (i - k) + ans1;
// cout << ans << " " << k << endl;
// cout << ans << " " << vec[j] << " " << ans1 << endl;
j++;
continue;
}
if (vec[i] > vec[j]) {
i++;
ans1 += vec[i];
cout << vec[i] << " ";
}
}
cout << endl;
inplace_merge(vec.begin() + l, vec.begin() + mid, vec.begin() + r);
return ans;
}
signed main() {
cin >> n;
vec.resize(n);
for (int i = 0; i < n; i++) {
cin >> vec[i];
}
cout << recur(0, n) << endl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZyAKdmVjdG9yPGludD4gdmVjOwppbnQgbjsKCmludCByZWN1cihpbnQgbCwgaW50IHIpIHsKICAgIGludCBhbnMgPSAwOwogICAgaWYgKGwgKyAxID49IHIpIHsKICAgICAgICByZXR1cm4gYW5zOwogICAgfQogICAgaW50IG1pZCA9IChsICsgcikgLyAyOwogICAgYW5zICs9IHJlY3VyKGwsIG1pZCk7CiAgICBhbnMgKz0gcmVjdXIobWlkLCByKTsKICAgIAogICAgLy8gRGVidWdnaW5nIG91dHB1dAogICAgLy8gY291dCA8PCBsIDw8ICIgIiA8PCByIDw8IGVuZGw7CiAgICAKICAgIC8vIENvdW50IGludmVyc2lvbnMKICAgIGludCBpID0gbCwgaiA9IG1pZDsKICAgIGludCBrID0gMDsKICAgIGludCBhbnMxID0gMDsgCiAgICB3aGlsZSAoaiA8IHIpIHsKICAgICAgICBpZihpICsgMSA9PSBtaWQgfHwgdmVjW2pdID4gdmVjW2ldKXsKICAgICAgICAgICAgLy8gd2hpbGUodmVjW2tdIDwgdmVjW2pdKXsKICAgICAgICAgICAgLy8gICAgIGFuczEgLT0gdmVjW2tdOwogICAgICAgICAgICAvLyAgICAgaysrOwogICAgICAgICAgICAvLyB9CiAgICAgICAgICAgIGFucyArPSB2ZWNbal0gKiAoaSAtIGspICsgYW5zMTsKICAgICAgICAgICAgLy8gY291dCA8PCBhbnMgPDwgIiAiIDw8IGsgPDwgZW5kbDsgCiAgICAgICAgICAgIC8vIGNvdXQgPDwgYW5zIDw8ICIgIiA8PCB2ZWNbal0gPDwgIiAiIDw8IGFuczEgPDwgZW5kbDsgCiAgICAgICAgICAgIGorKzsKICAgICAgICAJY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmICh2ZWNbaV0gPiB2ZWNbal0pIHsKICAgICAgICAgICAgaSsrOwogICAgICAgICAgICBhbnMxICs9IHZlY1tpXTsKICAgICAgICAgICAgY291dCA8PCB2ZWNbaV0gPDwgIiAiOwogICAgICAgICAgICAKICAgICAgICB9IAogICAgfQogICAgY291dCA8PCBlbmRsOyAKICAgIAoKICAgIGlucGxhY2VfbWVyZ2UodmVjLmJlZ2luKCkgKyBsLCB2ZWMuYmVnaW4oKSArIG1pZCwgdmVjLmJlZ2luKCkgKyByKTsKICAgIHJldHVybiBhbnM7Cn0KCnNpZ25lZCBtYWluKCkgewogICAgY2luID4+IG47CiAgICB2ZWMucmVzaXplKG4pOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBjaW4gPj4gdmVjW2ldOwogICAgfQogICAgY291dCA8PCByZWN1cigwLCBuKSA8PCBlbmRsOwp9