放上代码
#include<iostream>
#include<iomanip>
#include<cstdlib>
#include<cstdio>
#include<cstring>
#include<string>
#include<queue>
#include<stack>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
int a[200010];
priority_queue<int> q1;
priority_queue<int,vector<int>,greater<int> >q2;
int main()
{
int n,m,now=1,que;
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=m;i++)
{
cin>>que;
for(int j=now;j<=que;j++)
{
q1.push(a[j]);
if(q1.size()==i)
{
q2.push(q1.top());
q2.pop();
}
}
now=que+1;
cout<<q2.top()<<endl;
q1.push(q2.top());
q1.pop();
}
return 0;
}
是两个堆的方法w
希望大佬查查错吧,样例都没过,输出3,3,3,3
https://www.luogu.com.cn/record/34557990
这是我的提交情况
就是上面那个连样例都没过得代码
竟然ac了三个点???????????
还是我今天在某帖中疯狂输入%%%%%带来了RP++?
显然不可能
就是。。很奇怪,先让大佬们查错吧,这个样例的问题可能得等到管理大佬们出马把w