#include <iostream>
#include <queue>
using namespace std;
int main() {
uint32_t n;
cin >> n;
priority_queue<uint64_t, vector<uint64_t>, greater<void>> q;
for (uint32_t i = 0; i < n; ++i) {
uint32_t number;
cin >> number;
q.push(number);
}
uint64_t cost = 0;
while (q.size() >= 2) {
uint64_t const first = q.top();
q.pop();
uint64_t const second = q.top();
q.pop();
auto const sum = first + second;
cost += sum;
q.push(sum);
}
cout << cost << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cXVldWU+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7Cgl1aW50MzJfdCBuOwoJY2luID4+IG47Cglwcmlvcml0eV9xdWV1ZTx1aW50NjRfdCwgdmVjdG9yPHVpbnQ2NF90PiwgZ3JlYXRlcjx2b2lkPj4gcTsKCWZvciAodWludDMyX3QgaSA9IDA7IGkgPCBuOyArK2kpIHsKCQl1aW50MzJfdCBudW1iZXI7CgkJY2luID4+IG51bWJlcjsKCQlxLnB1c2gobnVtYmVyKTsKCX0KCXVpbnQ2NF90IGNvc3QgPSAwOwoJd2hpbGUgKHEuc2l6ZSgpID49IDIpIHsKCQl1aW50NjRfdCBjb25zdCBmaXJzdCA9IHEudG9wKCk7CgkJcS5wb3AoKTsKCQl1aW50NjRfdCBjb25zdCBzZWNvbmQgPSBxLnRvcCgpOwoJCXEucG9wKCk7CgkJYXV0byBjb25zdCBzdW0gPSBmaXJzdCArIHNlY29uZDsKCQljb3N0ICs9IHN1bTsKCQlxLnB1c2goc3VtKTsKCX0KCWNvdXQgPDwgY29zdCA8PCBlbmRsOwoJcmV0dXJuIDA7Cn0K