RT,用的单调队列,感觉自己是正解啊。。。是不是有什么地方要优化的
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int a[N],q[N],l,r=-1;
int n,k;
int main(){
cin>>n>>k;
for(int i=0;i<n;++i){
cin>>a[i];
if(i-k+1>q[l]) ++l;
while(l<=r&&a[i]<=a[q[r]])--r;
q[++r]=i;
if(i+1>=k) cout<<a[q[l]]<<" ";
}
cout<<endl;
l=0,r=-1;
for(int i=0;i<n;++i){
if(i-k+1>q[l]) ++l;
while(l<=r&&a[i]>=a[q[r]]) --r;
q[++r]=i;
if(i+1>=k) cout<<a[q[l]]<<" ";
}
return 0;
}