自己看了,问题是在u[4] (也就是第6个数字输入时),i会是第7个,if判断不了,不清楚怎么实现,求调。
#include <bits/stdc++.h>
using namespace std;
int m,n,a[200010],u[200010],st[200010];
priority_queue <int> p;
priority_queue <int,vector<int>,greater<int> > q;
int main(){
cin>>m>>n;
for(int i=1;i<=m;i++) cin>>a[i];
for(int i=1;i<=n;i++) cin>>u[i];
int cnt=0;
for(int i=1,j=1;i<=m+1;i++){
q.push(a[i]);
if(i==u[j]){
for(int k=1;k<cnt+1;k++){
st[k]=q.top();
q.pop();
}
cnt++;j++;
cout<<q.top()<<endl;
for(int k=1;k<=cnt-1;k++) q.push(st[k]);
}
}
return 0;
}