#include <bits/stdc++.h>
using namespace std;
deque<int>q;
void Insert(vector<int>&str,int &i);
void Select(vector<int>&str,int &i){
q.pop_back();
Insert(str,i);
}
void Insert(vector<int>&str,int &i){
if(q.size()==0||str[i]>str[q.back()])
q.push_back(i);
else
Select(str,i);
}
int main(){
int m,n,front;
cin>>n>>m;
vector<int>str(n);
vector<int>Min(1,0);
for(int i=0;i<n;i++){
int x;
cin>>x;
str[i]=x;
}
cout<<0<<endl;
q.push_back(0);
for(int i=1;i<n;i++){
if(i==q.front()+m+1)
q.pop_front();
cout<<str[q.front()]<<endl;
Insert(str,i);
}
}
滑动窗口求最小值问题
最新推荐文章于 2024-07-17 23:01:07 发布