STL优先队列直接套上:
scanf("%d", &x);
p.push({x, i});
while (p.top().id <= i - k) p.pop();
printf("%d\n", p.top().v);
也可以用双端队列:
while(!p.empty()&&p.back().v<=a[i].v)p.pop_back();
p.push_back(a[i]);
if(p.front().id==i-k)p.pop_front();
if(i>=k)cout<<p.front().v<<endl;