30分求助,悬关
查看原帖
30分求助,悬关
902351
Little_x_starTYJ楼主2023/9/11 17:19
#include <bits/stdc++.h>
using namespace std;
const int N = 1e7 + 10;
int heap[N];
int heapsize;
void h_push(int x) {
	heap[++heapsize] = x;
	push_heap(heap + 1, heap + 1 + heapsize, greater<int>());
}
int h_pop() {
	pop_heap(heap + 1, heap + 1 + heapsize, greater<int>());
	return heap[heapsize--];
}
int main() {
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		int t;
		cin >> t;
		h_push(t);
	}
	int ans = 0;
	while (heapsize > 1)
	{
		int a = h_pop();
		int b = h_pop();
		int sum = a + b;
		h_push(sum);
		ans += sum;
	}
	cout << ans;
	return 0;
}
2023/9/11 17:19
加载中...