#include<bits/stdc++.h> using ll=long long; const int N=5010; const int MAXN=1e6+10; typedef std::pair<int,int> pii; typedef std::pair<double,int> pdi; ll a[MAXN],b[MAXN]; std::deque<ll> dqmax; std::deque<ll> dqmin;
void solve() { int n,k; std::cin>>n>>k; for(int i=1;i<=n;i++) std::cin>>a[i];
for(int i=1;i<=n;i++) { if(!dqmin.empty() && i-dqmin.front()>=k) dqmin.pop_front(); while(!dqmin.empty() && a[dqmin.back()]>a[i]) dqmin.pop_back(); dqmin.push_back(i); if(i>=k) std::cout<<a[dqmin.front()]<<" "; } std::cout<<"\n";
for(int i=1;i<=n;i++) { if(!dqmax.empty() && i-dqmax.front()>=k) dqmax.pop_front(); while(!dqmax.empty() && a[dqmax.back()]<a[i]) dqmax.pop_back(); dqmax.push_back(i); if(i>=k) std::cout<<a[dqmax.front()]<<" "; } } int main(){ int t=1; while(t--)solve(); return 0; }
|