#include<bits/stdc++.h>
using namespace std;
queue<int> a;
queue<int> b;
long long n,x[10000001],t1,t2,ans;
inline int read()
{
int s=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
s=s*10+ch-'0';
ch=getchar();
}
return s*f;
}
inline void write(int x)
{
if(x<0){
putchar('-');
x=-x;
}
if(x>9)
write(x/10);
putchar(x%10+'0');
}
int main(){
n=read();
for(int i=1;i<=n;i++){
int kkk;
cin>>kkk;
x[kkk]++;
}
for(int i=1;i<=n;i++){
while(x[i]){
x[i]--;
a.push(i);
}
}
for(int i=1;i<=n-1;i++){
int t1,t2;
if((a.front()<b.front()&&!a.empty())||b.empty()) {
t1=a.front();
a.pop();
}
else {
t1=b.front();
b.pop();
}
if((a.front()<b.front()&&!a.empty())||b.empty()) {
t2=a.front();
a.pop();
}
else{
t2=b.front();
b.pop();
}
ans+=t1+t2;;
b.push(t1+t2);
}
write(ans);
return 0;
}