#include<bits/stdc++.h>
using namespace std;
int a[10000010];
queue<long long> u;
queue<long long> q2;
const long long size=1e7;
long long ans=0;
long long x;
long long y;
char s;
void read(long long &f){
f=0;
s=getchar();
while(1){
if(s>='0'&&s<='9') f+=s-'0';
s=getchar();
if(s==' '||s=='\n'){
return;
}else{
f*=10;
}
}
return;
}
void find(long long &z){
if(u.empty()&&q2.empty()) z=0;
else if(((!u.empty()&&!q2.empty())&&u.front()<=q2.front())||(q2.empty()&&!u.empty())){
z=u.front();
u.pop();
return;
}else {
z=q2.front();
q2.pop();
return;
}
}
int main(){
long long n;
long long sun;
read(n);
for(int i=1;i<=n;i++){
read(sun);
a[sun]++;
}
for(int i=1;i<=size;i++){
while(a[i]>=1){
u.push(i);
a[i]--;
}
}
for(int i=1;i<=n-1;i++){
find(x);
find(y);
q2.push(x+y);
ans+=(x+y);
}
printf("%lld",ans);
return 0;
}