这是代码:
#include <iostream>
#include <cstdio>
#include <algorithm>
const long long x=10e6+20;
long long N,K,da[x],dl[x],id[x],le=1,ri;
using namespace std;
int main()
{
cin>>N>>K;
for(int i=1;i<=N;i++)
{
scanf("%d",&da[i]);
}
for(int i=1;i<=N;i++)
{
while(le<=ri&&da[i]<=dl[ri])
{
ri--;
}
ri++;
dl[ri]=da[i];
id[i]=i;
if(id[le]+K<=i)
{
le++;
}
if(i>=K)
{
printf("%d ",dl[le]);
}
}
cout<<endl;
for(int i=1;i<=N;i++)
{
while(le<=ri&&da[i]>=dl[ri])
{
ri--;
}
ri++;
dl[ri]=da[i];
id[i]=i;
if(id[le]+K<=i)
{
le++;
}
if(i>=K)
{
printf("%d ",dl[le]);
}
}
cout<<endl;
return 0;
}
望大佬指正,谢谢啦!