对顶堆WA求助,样例过了。。。
#include<bits/stdc++.h>
using namespace std;
int n,w,a[100100];
priority_queue<int>q1,q2;
int main(){
cin>>n>>w;
for(int i=1;i<=n;i++){
int x;
cin>>x;
if(x==0){
q2.push(x);
}
else{
q1.push(-x);
}
int p=max(1,i*w/100);
while(q2.size()>i-p){
int x=q2.top();
q2.pop();
q1.push(-x);
}
while(q1.size()>p){
int x=-q1.top();
q1.pop();
q2.push(x);
}
cout<<-q1.top()<<' ';
}
}