RMQ求调(本蒟蒻不怎么会,勿喷)
#include<bits/stdc++.h>
using namespace std;
const long long N=1000001;
long long loog[N];
long long n,m,a[N+4],st[N][31],lg;
int main(){
loog[1]=0;
cin>>n>>m;
for(long long i=2;i<=m;++i){
loog[i]=loog[i>>1]+1;
}
lg=loog[m];
for(long long i=1;i<=n;++i) cin>>a[i];
for(long long j=0;j<=21;++j){
for(long long i=1;i<=n-(1<<j)+1;++i){
if(j==0) st[i][j]=a[i];
else st[i][j]=min(st[i][j-1],st[i+1<<(j-1)][j-1]);
}
}
for(long long i=1;i<=n-m+1;++i){
cout<<min(st[i][lg],st[i+m-1-(1<<lg)+1][lg])<<endl;
}
return 0;
}