为什么会UKE
查看原帖
为什么会UKE
415320
没见过AC楼主2023/4/15 15:14

记录

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+100;
typedef long long ll;
int read()
{
    int n=0;char ch=getchar();
    while(ch<'0'||'9'<ch)ch=getchar();
    while(ch>='0'&&ch<='9'){n=n*10+ch-'0';ch=getchar();}
    return n;
}
ll m,n,max_=-100000000,min_=9999999999,a[N],k,ans=0,y=0,ans_[N][5];
int main()
{
//    memset(,0,sizeof );
	cin>>n>>k;
	for(int i=1;i<=n;i++)
	{
		scanf("%lld",&a[i]);
	}
	if(n==1)
	{
		cout<<"1 1\n 1 1";
		return 0;
	}
	for(int i=1;i<=n;i++)
	{
		max_=a[i];
		min_=a[i];
		for(int j=i+1;j<=n;j++)
		{
			max_=max(max_,a[j]);
			min_=min(min_,a[j]);
			if(j==n&&k>=max_-min_)
			{
				ll x=j-i+1;
				ans=max(ans,x);
				break;
			}
			if(k<max_-min_)
			{
				ll x=j-i;
				ans=max(ans,x);
				break;
			}
		}
	}
	int z=1;
	for(int i=1;i<=n-ans+1;i++)
	{
		max_=a[i];
		min_=a[i];
		z=1;
		for(int j=i+1;j<=i+ans-1;j++)
		{
			max_=max(max_,a[j]);
			min_=min(min_,a[j]);
			if(k<max_-min_)
			{
				z=0;
				break;
			}
		}
		if(z)
		{
			y++;
			ans_[y][1]=i;
			ans_[y][2]=i+ans-1;
		}
	}
	cout<<ans<<" "<<y<<"\n";
	for(int i=1;i<=y;i++)
	{
		cout<<ans_[i][1]<<' '<<ans_[i][2]<<"\n";
	}
	return 0;
}

几分钟写的一点优化都没的代码

2023/4/15 15:14
加载中...