VJhrbustacm0304专题一题解

L:搬果子

用一般的priority_queue做就可以了。

优先队列//扔进去就能自动排序的序列,记得T组数据要pop干净

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
priority_queue<int,vector<int>,greater<int> >q;
int n,x,ans=0,tmp=0;
int main()
{
    while(cin>>n){
        ans=0; 
        while(!q.empty()){
            q.pop();
        }//清空 
    for(int i=1;i<=n;i++)
        {
            cin>>x;
            q.push(x);
        }
    for(int i=1;i<=n-1;i++)
        {
            tmp=q.top();
            q.pop();
            tmp=tmp+q.top();
            q.pop();
            q.push(tmp);
            ans=ans+tmp;
        }
        cout<<ans<<endl;
    }    
return 0;
}

 

posted @ 2019-03-05 11:04  Fylsea  阅读(172)  评论(0编辑  收藏  举报