#include<stdio.h>
long long a[10000005],l=0;
void swap(long long &x,long long &y){
int t=x;
x=y;
y=t;
}
void pushf(long long x){
l++;
a[l]=x;
long long id=l;
while(id>1&&a[id]<a[id/2]){
swap(a[id],a[id/2]);
id/=2;
}
}
void popf(){
a[1]=a[l--];
long long id=1;
while(id*2<=l){
long long x=id*2;
if(x<l&&a[x+1]<a[x]){
x++;
}
if(a[x]>=a[id])break;
swap(a[id],a[x]);
id=x;
}
}
int main(){
long long n,x;
scanf("%lld",&n);
for(long long i = 1;i<=n;i++){
scanf("%lld",&x);
pushf(x);
}
long long sum=0;
while(l>1){
x=0;
x+=a[1];
popf();
x+=a[1];
popf();
pushf(x);
sum+=x;
}
printf("%lld",sum);
}