题解 P1090 【合并果子】

2018-02-26 22:20:08


C++的STL还是挺好用的

#include<cstdio>
#include<iostream>
#include<queue>
#include<algorithm>
using namespace std;
priority_queue <int, vector<int>, greater<int> > q; //新建一个优先队列
int a[10001];
int main(){
    int n,temp,j=0,ans=0;
    cin>>n;
    for(int i=0;i<n;++i){
        cin>>temp;
        q.push(temp); //读入数据
    }
    for(int i=0;q.size()!=1;++i){
        a[j]+=q.top();
        q.pop();  //出队
        a[j]+=q.top();
        q.pop();  //出队
        q.push(a[j]);
        j++; 
    }
    for(int i=0;i<j;++i)
        ans+=a[i]; //计算结果
    cout<<ans;
}

https://www.aptx.xin/p1090.html