#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
int a[maxn];
int len;
inline int read()
{
int a=0,f=1;
char c=getchar();
while(!isdigit(c))
{
if(c=='-') f=-1;
c=getchar();
}
while(isdigit(c))
{
a=(a<<1)+(a<<3)+(c^'0');
c=getchar();
}
return a*f;
}
void adjust(int index)
{
int left=2*index,right=2*index+1;
int minidx=index;
if(left<=len && a[left]<a[minidx]) minidx=left;
if(right<=len && a[right]<a[minidx]) minidx=right;
if(minidx!=index)
{
swap(a[minidx],a[index]);
adjust(minidx);
}
}
void push(int x)
{
a[len++]=x;
int index=len;
while(a[index]<a[index/2])
{
swap(a[index],a[index/2]);
index/=2;
}
}
int pop()
{
int t=a[1];
a[1]=a[len];
len--;
adjust(1);
return t;
}
void heapsort()
{
for(int i=len/2;i>=0;i--)
{
adjust(i);
}
}
int main()
{
len=read();
for(int i=1;i<=len;i++)
a[i]=read();
heapsort();
int ans=0;
while(1)
{
int tmp=pop();
tmp+=pop();
ans+=tmp;
if(!len) break;
push(tmp);
}
cout<<ans<<endl;
}