codes:
#include<cstdio>
#include<queue>
using namespace std;
int main()
{
int n;
priority_queue< int,vector<int>,greater<int> > v;
//priority_queue< int,vector<int>,less<int> > v;//大根堆
while(scanf("%d",&n)!=EOF)
{
int temp;
long long num=0;
for(int i=1;i<=n;++i)
{
scanf("%d",&temp);
v.push(temp);
}
while(--n)
{
int num1=v.top();
v.pop();
int num2=v.top();
v.pop();
v.push(num1+num2);
num=num1+num2+num;
}
while(!v.empty())
{
v.pop();
}
printf("%lld\n",num);
}
return 0;
}