rt,不知道为什么
#include <iostream>
#include <cstdio>
#define MX 1<<30
using namespace std;
int n,m,t,l,r,a[1000001],b[1000001];
int c[5001][5001];
bool pd(void)
{
for(int i=1;i<=n;i++)
if(a[i]<2)
return false;
return true;
}
int main()
{
cin>>n>>m;
b[0]=1;
for(int i=1;i<=n;i++)
{
cin>>a[i];
b[i]=b[i-1]*a[i];
}
if(pd())
{
for(int i=1;i<=m;i++)
{
cin>>t>>l>>r;
if(t==1)
{
for(int i=l;i<=n;i++)
b[i]=b[i]/a[l]*r;
a[l]=r;
}
if(t==2)
{
int ans=max(1,b[r]/b[l-1]);
if(ans>MX) cout<<"Too large"<<endl;
else cout<<ans<<endl;
}
}
return 0;
}
for(int i=1;i<=m;i++)
{
cin>>t>>l>>r;
if(t==1)
{
for(int i=l;i<=n;i++)
b[i]=b[i]/a[l]*r;
a[l]=r;
}
if(t==2)
{
int ans=1;
for(int i=l;i<=r;i++)
for(int j=l+1;j<=r;j++)
ans=max(ans,b[j]/b[i-1]);
if(ans>MX) cout<<"Too large"<<endl;
else cout<<ans<<endl;
}
}
return 0;
}