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; }