题解 | #搬水果#

搬水果

https://www.nowcoder.com/practice/e4c775b0f3ee42a4bb72c26d2e1eef8a

#include <cstdio>
#include <iostream>
#include <string>
#include <queue>

using namespace std;

int main(){
    int n;
    while(scanf("%d",&n)!=EOF){
        if(n==0){
            break;
        }
        priority_queue<int,vector<int>,greater<int>> myPriorityQueue;
        while(n--){
            int x;
            scanf("%d",&x);
            myPriorityQueue.push(x);
        }
        int answer=0;
        while(1<myPriorityQueue.size()){
            int a,b;
            a=myPriorityQueue.top();
            myPriorityQueue.pop();
            b=myPriorityQueue.top();
            myPriorityQueue.pop();
            answer=answer+a+b;
            myPriorityQueue.push(a+b);
        }
        printf("%d\n",answer);

    }
    return 0;
}

全部评论

相关推荐

notbeentak...:孩子,说实话,选择很重要,可能你换一个方向会好很多,但是现在时间不太够了,除非准备春招
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务