https://www.luogu.org/problem/show?pid=1334
类似合并果子,注意要用long long
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#define ms(i,j) memset(i,j, sizeof i);
using namespace std;
int n;
priority_queue<long long, vector<long long>, greater<long long> > p;
int main()
{
scanf("%d",&n);
for (int i=1;i<=n;i++)
{
int x;
scanf("%d", &x);
p.push(x);
}
long long tot = 0;
while (p.size()!=1)
{
long long a = p.top(); p.pop();
long long b = p.top(); p.pop();
tot += a+b;
p.push(a+b);
}
printf("%lld\n", tot);
return 0;
}