Pagini recente » Cod sursa (job #2361617) | Cod sursa (job #2014762) | Monitorul de evaluare | Rating MAG E 2014 (mag9e2014) | Cod sursa (job #1687450)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("arbint.in");
ofstream g("arbint.out");
int i,j,q,a,b,n,m,t=1,A[500000];
int query(int p,int l,int r)
{
if (l>=a && b>=r)
return A[p];
if (l>b||a>r)
return 0;
return max(query(p*2,l,(l+r)/2),query((p*2)+1,(l+r)/2+1,r));
}
int main()
{
f>>n>>m;
while(t<n)
t*=2;
for (i=t; i<n+t; ++i)
f>>A[i];
for(i=t-1; i>0; i--)
A[i]=max(A[i*2],A[(i*2)+1]);
while(m--)
{
f>>q>>a>>b;
if (q)
{
a+=t-1,A[a]=b;
while(a)
a/=2,A[a]=max(A[a*2],A[(a*2)+1]);
}
else
g<<query(1,1,t)<<"\n";
}
return 0;
}