本来是一个很水的单调队列题
但是我拿来练习手写队列
然后就挂了
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
using namespace std;
int head,tail;
int st[2000001];
int ans[2000001];
int Aimee[2000001];
int n,m,x;
int la;
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i){
scanf("%d",&Aimee[i]);
x=Aimee[i-1];
if(i==1){
cout<<0<<endl;
continue;
}
while(tail>head&&Aimee[st[tail-1]]>x){
tail--;
}
st[tail++]=i-1;
while(st[tail-1]-st[head]>=m){
head++;
}
printf("%d
",Aimee[st[head]]);
}
return 0;
}