#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
int n, wpl = 0; // wpl 记录最小带权路径长度
cin >> n;
vector<int> weight(n);
for (int i = 0; i < n; i++) {
cin >> weight[i];
}
do {
sort(weight.begin(), weight.end()); // 按权值由小到大调整weight数组
int temp = weight[0] + weight[1];
weight.push_back(temp);
wpl += temp;
weight.erase(weight.begin(), weight.begin() + 2);
} while (weight.size() > 1);
// 遍历调试
// for(auto i : weight){
// cout << i << " ";
// }
cout << wpl << endl;
return 0;
}