合并果子
#include<bits/stdc++.h>
using namespace std;
inline long long read(){
long long num=0;int z=1;char c=getchar();
if(c=='-') z=-1;
while((c<'0'||c>'9')&&c!='-') c=getchar();
if(c=='-') z=-1,c=getchar();
while(c>='0'&&c<='9') num=(num<<1)+(num<<3)+(c^48),c=getchar();
return z*num;
}
#define _for(i,a,b) for(int i=a;i<=b;i++)
int n,a,num=0;
priority_queue<int ,vector<int>,greater<int> >q;
int main(){
n=read();
_for(i,1,n) a=read(),q.push(a);
while(q.size()>1)
{
int x1=q.top();q.pop();
int x2=q.top();q.pop();
int ans=x1+x2;
num+=ans;
q.push(ans);
}
cout<<num;
return 0;
}