Pagini recente » Cod sursa (job #1160452) | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #1799022) | Cod sursa (job #3313918)
#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=0;
for(j+=n-1,k+=n-1;j<=k;l=max(l,max(a[j],a[k])),j=(j+1)/2,k=(k-1)/2);
cout<<l<<'\n';
} else
for(j+=n-1,a[j]=k,j>>=1;j;a[j]=max(a[2*j],a[2*j+1]),j>>=1);
}
return 0;
}