优先队列-合并果子
陈子骏
2018-04-02 19:00:57
```
#include<bits/stdc++.h>
using namespace std;
int n,a[20001],ans;
priority_queue<int,vector<int>,greater<int> > q;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
q.push(a[i]);
}
for(int i=1;i<n;i++)
{
int l=q.top();
q.pop();
int l1=q.top();
q.pop();
q.push(l+l1);
ans+=(l1+l);
}
printf("%d",ans);
}
```