#include<bits/stdc++.h>
using namespace std;
int n,k,da[100001],dl[1000001],id[1000001],le=1,ri;
int main()
{
cin>>n>>k;
for(int i=1;i<=n;i++)//输入循环
{
cin>>n>>k;
}
for(int i=1;i<=n;i++){//主循环
while(le<=ri&&da[i]<dl[ri])ri--;//执行循环
ri++;
dl[ri]=da[i];
id[ri]=i;
if(id[le]+k<i)le++;//判断是否队首太老了
if(i>=k)cout<<dl[le]<<" ";
}
cout<<endl;//输出换行
return 0;
}
模板 30 : 单调队列通用核心代码
最新推荐文章于 2023-10-20 17:00:55 发布