#include <iostream> using namespace std; using ll = long long; const int maxn=1e6+10; int n,k,a[maxn],q[maxn]; int main(){ ios::sync_with_stdio(false); cin>>n>>k; for(int i=0;i<n;i++)cin>>a[i]; int l=0,r=-1; for(int i=0;i<n;i++){ while(l<=r&&i-k+1>q[l])l++; while(l<=r&&a[q[r]]>=a[i])r--; q[++r]=i; if(i>=k-1)cout<<a[q[l]]<<" "; } cout<<endl; l=0,r=-1; for(int i=0;i<n;i++){ while(l<=r&&i-k+1>q[l])l++; while(l<=r&&a[q[r]]<=a[i])r--; q[++r]=i; if(i>=k-1)cout<<a[q[l]]<<" "; } }
原文:https://www.cnblogs.com/qq1415584788/p/14784472.html