优先队列-合并果子

陈子骏

2018-04-02 19:00:57

Personal

``` #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); } ```