用小根堆维护最大值最小为什么不可以,样例过0分
查看原帖
用小根堆维护最大值最小为什么不可以,样例过0分
1563554
liyinqi005110楼主2024/11/11 21:39
include<bits/stdc++.h>
using namespace std;
int main(){
	int s[4];
	int ans=0;
	for(int i=0;i<4;i++) cin>>s[i];
	for(int i=0;i<4;i++){
		priority_queue<int,vector<int>,greater<int>> pq;
		for(int j=1;j<=s[i];j++){
			int a;
			cin>>a;
			pq.push(a);
		}
		if(pq.size()==1){
			ans+=pq.top();
			continue;
		}
		while(pq.size()!=2){
			int b=pq.top();pq.pop();
			int c=pq.top();pq.pop();
			int d=b+c;
			pq.push(d);
		}
		pq.pop();
		ans+=pq.top();
	}
	cout<<ans;
}
2024/11/11 21:39
加载中...