题目:
解题思路:
这道题=求前m个数的最小值+稍微修改的维护
源程序:
#include<deque>
#include<cstdio>
using namespace std;
deque<int>q;
int n,m,f,a[2000001];char c;
int main()
{
scanf("%d%d%d",&n,&m,&a[1]);
q.push_back(1);
for(int i=2;i<=n;i++)
{
scanf("%d",&a[i]);
while(q.size()&&a[i]>a[q.back()]) q.pop_back();
q.push_back(i);
if(i-q.front()==m) q.pop_front();
if(i>=m)
printf("%d\n",a[q.front()]);
}
}