#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <queue>
#include <stack>
using namespace std;
class cmp
{
public:
bool operator()(const __int64 a,const __int64 b)const
{
return a>b;
}
};
priority_queue<__int64,vector<__int64>,cmp> q1;
int a[200000];
int main()
{
long long i,a1,a2,c;
long long cont=0;
long long n,k;
scanf("%I64d",&n);
for(i = 0;i<n;i++)
{
scanf("%I64d",&k);
q1.push(k);
}
while(q1.size()>1)
{
a1=q1.top();
q1.pop();
a2=q1.top();
q1.pop();
c=a1+a2;
cont+=c;
q1.push(c);
}
printf("%I64d\n",cont);
return 0;
}
#include <cstring>
#include <algorithm>
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <queue>
#include <stack>
using namespace std;
class cmp
{
public:
bool operator()(const __int64 a,const __int64 b)const
{
return a>b;
}
};
priority_queue<__int64,vector<__int64>,cmp> q1;
int a[200000];
int main()
{
long long i,a1,a2,c;
long long cont=0;
long long n,k;
scanf("%I64d",&n);
for(i = 0;i<n;i++)
{
scanf("%I64d",&k);
q1.push(k);
}
while(q1.size()>1)
{
a1=q1.top();
q1.pop();
a2=q1.top();
q1.pop();
c=a1+a2;
cont+=c;
q1.push(c);
}
printf("%I64d\n",cont);
return 0;
}