#include <iostream>
#include <cstdio>
#include <algorithm>
#include <fstream>
#include <cstring>
using namespace std;
int n;
const int maxn=10000+10;
long long dui[maxn],ans=0;
int my_long=0;
void my_ins(long long data);
long long my_del();
int main(){
freopen("fruit.in","r",stdin);
freopen("fruit.out","w",stdout);
cin>>n;
for(int i=0;i<n;i++)
{
long long x;
cin>>x;
my_ins(x);
}
for(int i=0;i<n-1;i++)
{
long long x,y;
x=my_del();
y=my_del();
ans=ans+x+y;
my_ins(x+y);
}
cout<<ans<<endl;
return 0;
}
void my_ins(long long data)
{
dui[++my_long]=data;
int next=my_long;
for(;my_long>1;)
{
int f=next/2;
if(dui[f]>dui[next])
swap(dui[f],dui[next]);
else
break;
next=f;
}
}
long long my_del(){
long long t=dui[1];
dui[1]=dui[my_long--];
for(int next=1;;){
int left=next*2,p=left;
if(left>my_long) break;
int right=left+1;
if(right<=my_long)
if(dui[right]<dui[left])
p=right;
if(dui[next]>dui[p])
swap(dui[next],dui[p]);
next=p;
}
return t;
}