不吸氧 #2TLE
#include<iostream>
#include<queue>
using namespace std;
int arr[1000005],n,k;
struct cmp1{bool operator () (const int &a,const int &b){return arr[a]>arr[b];}};
struct cmp2{bool operator () (const int &a,const int &b){return arr[a]<arr[b];}};
priority_queue<int,vector<int>,cmp1> qmin;
priority_queue<int,vector<int>,cmp2> qmax;
int ansmin[1000005],ansmax[1000005];
int main()
{
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>n>>k;
for(int i=0;i<n;i++)cin>>arr[i];
for(int i=0;i<k-1;i++){qmin.push(i);qmax.push(i);}
for(int i=0;i<n-k+1;i++)
{
qmin.push(i+k-1);
qmax.push(i+k-1);
while(qmin.top()<i)qmin.pop();
while(qmax.top()<i)qmax.pop();
ansmin[i]=arr[qmin.top()];
ansmax[i]=arr[qmax.top()];
}
for(int i=0;i<n-k+1;i++)cout<<ansmin[i]<<' ';
cout<<endl;
for(int i=0;i<n-k+1;i++)cout<<ansmax[i]<<' ';
}