Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
168044 | Mino_XIE-谢文凯B班 | 紧急集合 | C++ | 通过 | 100 | 4 MS | 392 KB | 677 | 2024-08-19 22:01:52 |
#include <iostream> #include <vector> #include <queue> using namespace std; int main() { int n; cin >> n; priority_queue<int, vector<int>, greater<int>> minHeap; vector<int> laziness(n); for (int i = 0; i < n; ++i) { cin >> laziness[i]; minHeap.push(laziness[i]); } long long totalCost = 0; while (minHeap.size() > 1) { int first = minHeap.top(); minHeap.pop(); int second = minHeap.top(); minHeap.pop(); int mergeCost = first + second; totalCost += mergeCost; minHeap.push(mergeCost); } cout << totalCost << endl; return 0; }