10pts求解
查看原帖
10pts求解
953549
LXH_2011楼主2024/10/14 12:59

10 pts

#include<bits/stdc++.h>
#define ll long long
#define sc scanf
#define pr printf 

using namespace std;
ll n,q,a[1000005],num,l,r,m=1,ma=-2e9;
int main()
{
	sc("%lld%lld",&n,&q);
	for(ll i=1;i<=n;i++)sc("%lld",&a[i]);
	for(ll i=1;i<=q;i++)
	{
		sc("%lld%lld%lld",&num,&l,&r);
		if(num==1)a[l]=r;
		if(num==2)
		{
			if(l==r)
			{
				if(a[l]>0)pr("%lld",a[l]);
				else pr("1");
				continue;
			}
			for(ll j=l;j<=r;j++)
			{ 
				if(a[j]==0)a[j]=1;
				if(m*a[j]>0)
				{
					m*=a[j];
					ma=max(ma,m);
				}
				else if(m*a[j]<0)
				{
					m*=a[j];
					m=1;
				}
			}
			if(ma>1024*1024*1024)pr("Too large\n");
			else pr("%lld\n",ma);
			ma=-2e9;
			m=1;
			continue;
		}
	} 

	return 0;
}
2024/10/14 12:59
加载中...