赛时暴力没T但WA了。。。
查看原帖
赛时暴力没T但WA了。。。
550579
GSRgsrgsr楼主2022/10/3 19:22
#include<bits/stdc++.h> 
#define int long long
using namespace std;
const int MAXN=2e5+5;
int a[MAXN];
int qpow(int x,int y){
	int ans=1;
	while(y){
		if(y%2)ans*=x;
		y/=2;
		x*=x;
	}
	return ans;
}
signed main(){
	int n,q,large=qpow(2,30);
	scanf("%lld%lld",&n,&q);
	for(int i=1;i<=n;++i)scanf("%lld",&a[i]);
	while(q--){
		int x,y,z;
		scanf("%lld%lld%lld",&x,&y,&z);
		if(x==1)a[y]=z;
		else{
			bool bj=false;
			int ans=1;
			for(int i=y;i<z;++i){
				int t=a[i];
				for(int j=i+1;j<=z;++j){
					if(bj)break;
					t*=a[j];
					if(t>large)bj=true;
					ans=max(ans,t);
				}
				if(bj)break;
			}
			if(bj)printf("Too large\n");
			else printf("%lld\n",ans);
		}
	}
	return 0;
}
2022/10/3 19:22
加载中...