#include<iostream>
#include<vector>
#include<queue>
using namespace std;
int main()
{
int n;
cin>>n;
if(n < 1)
{
cout<<0;
return 0;
}
priority_queue< int, vector<int>, greater<int> >pq; //小根堆
int num = 0;
for(int i = 0; i < n; i++)
{
cin>>num;
pq.push(num);
}
int res = 0;
while(pq.size() != 1)
{
int a = pq.top(); pq.pop();
int b = pq.top(); pq.pop();
int s = a + b;
res += s;
pq.push(s);
}
cout<<res;
return 0;
}