题解 | #搬水果#

搬水果

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

#include <bits/stdc++.h>

using namespace std;

int main() {
    int n;//水果种类数
    int x;
    while (scanf("%d", &n) != EOF) {
        if (n == 0) {
            break;
        }
        priority_queue<int, vector<int>, greater<int>> fruit;//建立小根堆
        for (int i = 0; i < n; ++i) {
            scanf("%d", &x);
            fruit.push(x);
        }

        long long wpl = 0;
        while (fruit.size() != 1) {
            int a = fruit.top();
            fruit.pop();

            int b = fruit.top();
            fruit.pop();

            wpl = wpl + a + b;
            fruit.push(a+b);
        }
        printf("%d", wpl);
    }
    return 0;
}

全部评论

相关推荐

09-28 09:18
吉首大学 Java
离上岸不远了的牛油很...:同27,你写的专业技能那些是真熟练了吗,我感觉稍微问深一点我都要🐔
你找实习最大的坎坷是什么
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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