Pagini recente » Cod sursa (job #1427306) | Cod sursa (job #2895924) | Cod sursa (job #248588) | Cod sursa (job #1430817) | Cod sursa (job #3313916)
#include<fstream>
using namespace std;
ifstream cin("arbint.in");
ofstream cout("arbint.out");
int a[200000];
int main()
{
int m,n;
cin>>n>>m;
for(int i=n;i<2*n;cin>>a[i++]);
for(int i=n-1;i;a[i]=max(a[2*i],a[2*i+1]),--i);
for(;m--;) {
int i,j,k;
if(cin>>i>>j>>k,i) {
int l=j+n-1;
for(a[l]=k,l=(l+1)/2;l;a[l]=max(a[2*l],a[2*l+1]),l>>=1);
} else {
int m=max(a[j+n-1],a[k+n-1]);
for(j=(j+1)/2,k=(k-1)/2;j<k;m=max(a[j],a[k]),j=(j+1)/2,k=(k-1)/2);
cout<<m<<'\n';
}
}
return 0;
}