社区讨论

3分pts,求调必关

P3512[POI 2010] PIL-Pilots参与者 1已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mjwpt9z8
此快照首次捕获于
2026/01/02 18:12
2 个月前
此快照最后确认于
2026/01/05 13:40
上个月
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
#define MAXN 2000000	
int n,m,l,r,a[MAXN],sum[2005],max1,min1,max2,min2,max3,min3;
int ans,ansl,ansr,num;
int main(){
	cin>>m>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	l=1,r=1,ans=-MAXN,num=0,max1=0,min1=a[1],max2=0,min2=a[1];
	while(l<=r&&r<=n+1){
		if(max1-min1<=m){
			r++;
			max1=max(max1,a[r-1]);
			min1=min(min1,a[r-1]);//3 9 //5 1 3 5 8 6 6 9 10
			if(max3==max1){
				max2=max(max2,a[r-1]);
			}
			if(max3!=max1){
				max2=max3;
			}
			if(min3!=min1){
				min2=min3;
			}
			if(min3==min1){
				min2=min(min2,a[r-1]);
			}
			max3=max1;
			min3=min1;
			
		}
		else{
			if(ans<r-l){
				ans=r-l;
				ansr=r-1;
				ansl=l;
			}
			max1=max2;
			min1=min2;
			l++;		
		}
	}
	cout<<ansr-ansl+1;
	return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...