#46080: Andrew Wiggins back to warriors


1121226@stu.wghs.tp.edu.tw (Arthur✨EC✨小蜜楓)

學校 : 臺北市私立薇閣高級中學
編號 : 252772
來源 : [60.248.154.139]
最後登入時間 :
2025-05-14 12:52:05
d221. 10954 - Add All -- UVa10954 | From: [60.248.154.139] | 發表日期 : 2025-05-19 13:08

#include <bits/stdc++.h>
using namespace std;
int main() {
    ios::sync_with_stdio(false); // 加速
    cin.tie(0);
    int N; // 設立一個變數N表示接下來有N個數
    while (cin>>N&&N>0){ // 當輸入的N大於0時,執行以下程式碼
       // 設立一個最小堆積,用來存放數字
        priority_queue<long long, vector<long long>, greater<long long>> minHeap;
        for (int i=0;i<N;i++){
            int num;
            cin>>num;
            minHeap.push(num); // 將數字加入最小堆積中
        }
        long long total_cost=0; // 設立一個變數total_cost,用來存放總和
        while (minHeap.size()>1){ // 當最小堆積中有兩個以上的數字時,執行以下程式碼
            long long a=minHeap.top();minHeap.pop(); // 取出最小堆積中的最小值,並將其從堆積中移除
            long long b=minHeap.top();minHeap.pop(); // 取出最小堆積中的最小值,並將其從堆積中移除
            long long sum=a+b; // 將兩個數字相加,得到一個新的數字
            total_cost+=sum; // 將新的數字加入總和中
            minHeap.push(sum); // 將新的數字加入最小堆積中
        }
        cout<<total_cost<<endl;
    }
    return 0;
}
 
ZeroJudge Forum