#include<bits/stdc++.h>
using namespace std;
queue<int>a;
queue<int>b;
int c[100001];
long long js;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
scanf("%d",&c[i]);
}
sort(c+1,c+n+1);
for(int i=1;i<=n;i++)
{
a.push(c[i]);
}
int s1,s2;
if(n==1)
{
printf("0");
return 0;
}
while(!a.empty()||b.size()!=1)
{
if(b.size()>=2&&a.size()>=2){
if(a.front()<b.front())
{
js+=a.front();
s1=a.front();
a.pop();
}
else
{
js+=b.front();
s1=b.front();
b.pop();
}
if(a.front()<b.front())
{
js+=a.front();
s2=a.front();
a.pop();
}
else
{
js+=b.front();
s2=b.front();
b.pop();
}
}
else if(b.empty()&&a.size()>=2)
{
js+=a.front();
s1=a.front();
a.pop();
js+=a.front();
s2=a.front();
a.pop();
}
else if(a.empty()&&b.size()>=2)
{
js+=b.front();
s1=b.front();
b.pop();
js+=b.front();
s2=b.front();
b.pop();
}
else if(a.size()==1&&b.size()==1)
{
js+=a.front();
s1=a.front();
a.pop();
js+=b.front();
s2=b.front();
b.pop();
}
b.push(s1+s2);
}
printf("%lld",js);
return 0;
}