Files
Data-Structure/模板//Huffman最小代价.cpp
2025-12-16 20:36:27 +08:00

24 lines
495 B
C++

#include <iostream>
#include <queue>
using namespace std;
int main(){
priority_queue<int, vector<int>, greater<int>> pq;
int n;
cin >> n;
int tmp;
int sum = 0;
for(int i = 0; i < n; i++){
cin >> tmp;
sum += tmp;
pq.push(tmp);
}
long long ans = 0;
while(pq.size() > 1){
int x = pq.top(); pq.pop();
int y = pq.top(); pq.pop();
pq.push(x + y);
ans += (x + y);
}
cout << ans << endl;
return 0;
}