#include<bits/stdc++.h>
using namespace std;
priority_queue<unsigned long long,vector<unsigned long long>,greater<unsigned long long> >q;
int rad()
{
int ret=0;
char ch=getchar();
while (ch<'0'||ch>'9')
ch=getchar();
while (ch<='9'&&ch>='0')
ret=ret*10+ch-'0',ch=getchar();
return ret;
}
int main()
{
unsigned long long n, x, ans = 0;
cin >> n;
for(int i = 1; i <= n; i++)
{
q.push(rad());
}
while(q.size() >= 2)
{
unsigned long long a = q.top();
q.pop();
unsigned long long b = q.top();
q.pop();
ans += a + b;
q.push(a + b);
}
cout << ans << endl;
return 0;
}
dalao求助