哪里越界了?
查看原帖
哪里越界了?
682390
quliannanyishou楼主2022/7/24 12:04

当窗口长度为1的时候会RE,why?

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int a,b,m[1000002];
	cin>>a>>b;
	for(int i=1;i<=a;i++)
	{
		cin>>m[i];
	}
	deque <int> c,d;
	for(int i=1;i<=a;i++)
	{
		if(i-d.front()>=b)
		{
			c.pop_front();
			d.pop_front();
		}
		
		while(!c.empty()&&m[i]<c.back())
		{
			c.pop_back();
			d.pop_back();
		}
		c.push_back(m[i]);
		d.push_back(i);
		if(i>=b)
		{
			cout<<c.front()<<" ";
		}
	}
	cout<<endl;
	if(!c.empty())
	{
	    c.clear();
	    d.clear();
	}
	for(int i=1;i<=a;i++)
	{
		if(i-d.front()>=b)
		{
			c.pop_front();
			d.pop_front();
		}
		while(!c.empty()&&m[i]>c.back())
		{
			c.pop_back();
			d.pop_back();
		}
		c.push_back(m[i]);
		d.push_back(i);
		if(i>=b)
		{
			cout<<c.front()<<" ";
		}
	}
}
2022/7/24 12:04
加载中...