Pagini recente » Cod sursa (job #1844543) | Cod sursa (job #222829) | Cod sursa (job #2495474) | Cod sursa (job #16872) | Cod sursa (job #744145)
Cod sursa(job #744145)
const val=262144;
var t:array[1..val*2]of longint;
x,z,y,n,m,i,maxim:longint;
bi,bo:array[1..1 shl 17] of char;
function max(a,b:longint):longint;
begin if a>b then max:=a else max :=b end;
procedure baga(l,x:longint);
Begin
t[l]:=x;
l:=l div 2;
while l<>0 do
begin
t[l]:=max(t[2*l],t[2*l+1]);
l:=l div 2;
end;
End;
procedure cauta(s,d,niv:longint);
var mij:longint;
Begin
mij:=(s+d) div 2;
if ((s>=x) and (d<=y)) then
begin
if t[niv]>maxim then maxim:=t[niv]
end
else
begin
if x<=mij then cauta(s,mij,2*niv);
if y>=mij+1 then cauta(mij+1,d,2*niv+1);
end;
End;
BEGIN
assign(input,'arbint.in');
settextbuf(input,bi);
reset(input);
readln(n,m);
assign(output,'arbint.out');
settextbuf(output,bo);
rewrite(output);
for i:=1 to n do
begin
read(x);
baga(val+i-1,x);
end;
for i:=1 to m do
begin
readln(z,x,y);
if z=1 then baga(val+x-1,y)else
begin
maxim:=0;
cauta(1,val,1);
writeln(maxim);
end;
end;
close(input);
close(output);
End.