为什么这样不能输出0
:
#include <iostream>
#include <queue>
using namespace std;
const int N=2e6+5;
int n,m,num[N];
struct Node{int key,time;};
deque<Node>q;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;++i)
cin>>num[i];
puts("0");
cout<<num[1]<<"\n";
q.push_back({num[1],1});
for(int i=3;i<=n;++i){
while(!q.empty())
if(num[i-1]<=q.back().key||q.back().time+m<i)q.pop_back();
else break;
while(!q.empty())
if(q.front().time+m<i)q.pop_front();
else break;
if(q.empty())cout<<num[i-1]<<"\n";
else cout<<q.front().key<<"\n";
q.push_back({num[i-1],i-1});
}
return 0;
}