为什么代码里两句话写反会错(有注释的两句,一换过来就对了
#include<bits/stdc++.h>
const int N=2e6+5;
using namespace std;
inline int read(){
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
}
int n,m,a[N],q[N],h=1,t=0;
int main(){
n=read(),m=read();
for(int i=1;i<=n;i++)a[i]=read();
for(int i=1;i<=n;i++){
while(h<=t&&q[h]<=i-m)h++;
while(h<=t&&a[i]>=a[q[t]])t--;
if(i>=m)printf("%d\n",a[q[h]]);
q[++t]=i;
}
return 0;
}