对顶堆求助
查看原帖
对顶堆求助
362022
Wildchesse楼主2023/2/20 19:31

本地莫名卡死。 交上去显示内存错误(RE) 别问为什么用对顶堆,问就是老师要求用

#include<bits/stdc++.h>
#define int long long
#define MAXN 114514
using namespace std;
int n,w,per,a[MAXN];
priority_queue<int,vector<int>,greater<int> > q1;
priority_queue<int> q2;
signed main(){
	cin>>n>>w;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	for(int i=1;i<=n;i++){
		q1.push(a[i]);
		per=i*w/100;
		if(per<1){
			per=1;
		}
		if(q1.top()<q2.top() and q1.size()!=0 and q2.size()!=0){
			int t=q2.top();
			q2.pop();
			q2.push(q1.top());
			q1.pop();
			q1.push(t);
		}
		while(q1.size()!=per){
			if(q1.size()<per){
				q1.push(q2.top());
				q2.pop();
			}
			else{
				q2.push(q1.top());
				q1.pop();
			}
		}
		cout<<q1.top()<<" ";
	}
	return 0;
}

2023/2/20 19:31
加载中...