CSU 1588: 合并果子

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37960603/article/details/82049054

题目传送门
代码:

#include<bits/stdc++.h>
using namespace std;

int main(){

    priority_queue<int,vector<int>,greater<int> >que;
    int T;
    scanf("%d",&T);
    while(T--){

        int n;
        scanf("%d",&n);
        while(!que.empty()) que.pop();
        for(int i=1,val;i<=n;i++){

            scanf("%d",&val);
            que.push(val);
        }
        int sum=0,tmp;
        while(que.size()>2){

            tmp=0;
            tmp=que.top();
            que.pop();
            tmp+=que.top();
            que.pop();
            sum+=tmp;
            que.push(tmp);
        }
        while(!que.empty()) sum+=que.top(),que.pop();
        printf("%d\n",sum);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_37960603/article/details/82049054