#include<bits/stdc++.h>
using namespace std;
unsigned long long n,x,ans;
priority_queue<unsigned long long,vector<unsigned long long>,greater<unsigned long long> >w;
unsigned long long read()
{
unsigned long long s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
return s*w;
}
int main()
{
n=read();
for(register unsigned long long i=1;i<=n;i++)
{
x=read();
w.push(x);
}
while(w.size()>1)
{
unsigned long long a=w.top();
w.pop();
unsigned long long b=w.top();
w.pop();
ans+=a+b;
w.push(a+b);
}
cout<<ans<<endl;
return 0;
}