根据题意确实比较好理解就是要使最多果子数量的那堆果子的合并次数比较少
#include<bits/stdc++.h>
#include<string>
using namespace std;
typedef long long ll;
using namespace std;
const int N=10005;
int sum[N];
priority_queue <int,vector<int>,greater<int> > q;
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
int x;
scanf("%d",&x);
q.push(x);
}
int sum=q.top();
q.pop();
sum+=q.top();
q.pop();
q.push(sum);
ll ans=sum;
while(q.size()>1)
{
int x=q.top();
q.pop();
int y=q.top();
q.pop();
q.push(x+y);
ans+=x+y;
}
cout<<ans<<endl;
q.pop();
return 0;
}