#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,x,buck[100005];
ll fit,sed,ans;
queue<ll> q1,q2;
inline ll read(){
char ch=getchar();
ll s=0,f=1;
while( ch>'9' || ch<'0' ){
if( ch=='-' )
f=-1;
ch=getchar();
}
while( ch<='9' && ch>='0' ){
s=s*10+ch-48;
ch=getchar();
}
return s*f;
}
int main() {
scanf("%lld",&n);
for(ll i=1;i<=n;i++){
x=read();
buck[x]++;
}
for(ll i=1;i<=100000;i++){
while( buck[i] )
q1.push(i),buck[i]--;
}
for(ll i=1;i<n;i++){
if( q1.empty() ){
fit=q2.front(),q2.pop();
sed=q2.front(),q2.pop();
}
else if( q2.empty() ){
fit=q1.front(),q1.pop();
sed=q1.front(),q1.pop();
}
else{
if( q1.front()<q2.front() )
fit=q1.front(),q1.pop();
else
fit=q2.front(),q2.pop();
if( q1.front()<q2.front() )
sed=q1.front(),q1.pop();
else
sed=q2.front(),q2.pop();
}
ans+=fit+sed;
q2.push(fit+sed);
}
printf("%lld",ans);
}