优先队列
#include<cstdio>
#include<queue>
#include<iostream>
#include<algorithm>
#include<functional>//greater
using namespace std;
int n,k,ans=0,k1,k2;
//priority_queue<int>q;
priority_queue<int,vector<int>,greater<int> > q;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>k;
q.push(k);
}
while(q.size()>1){
//cout<<q.size()<<' ';
k1=q.top();
q.pop();
k2=q.top();
q.pop();
//cout<<k1<<' '<<k2<<endl;
q.push(k1+k2);
ans+=k1+k2;
}
cout<<ans;
return 0;
}