求助玄关!单调队列70分
查看原帖
求助玄关!单调队列70分
775747
_775spacing747_楼主2024/3/1 20:38

只对了七个点,其他全WA

实在找不到了。

#include<bits/stdc++.h>
using namespace std;
struct Node
{
	int x,y; 
}a[1000005];
deque<Node>d,q;
int main()
{
	int n,m,c;
	bool flag=0;
	scanf("%d%d%d",&n,&m,&c);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a[i].x);
		a[i].y=i;
		while(!d.empty()&&d.front().y<=i-m)d.pop_front();
		while(!q.empty()&&q.front().y<=i-m)q.pop_front();
		while(!d.empty()&&d.front().x<=a[i].x)d.pop_back();
		while(!q.empty()&&q.front().x>=a[i].x)q.pop_back();
		d.push_back(a[i]);
		q.push_back(a[i]);
		if(i>=m&&d.front().x-q.front().x<=c)
		{
			printf("%d\n",i-m+1);
			flag=1;
		}
	}
	if(!flag)cout<<"NONE";
	return 0;
}
2024/3/1 20:38
加载中...