Pagini recente » Cod sursa (job #2559832) | Cod sursa (job #167041) | Cod sursa (job #2733154) | Cod sursa (job #444562) | Cod sursa (job #175915)
Cod sursa(job #175915)
program test;
var A : array [1..270000] of longint;
n,i,m,o,l,mx,val : longint;
f,g : text;
function max(a,b:longint):longint;
begin
if a>b then max := a
else max := b;
end;
procedure add(nod,x,y:longint);
var mij : longint;
begin
if x=y then A[nod] := val
else begin
mij := (x+y) div 2;
if i<=mij then add(2*nod,x,mij)
else add(2*nod+1,mij+1,y);
if A[2*nod]>A[2*nod+1] then A[nod] := A[2*nod]
else A[nod] := A[2*nod+1];
end;
end;
procedure request(nod,x,y:longint);
var mij : longint;
begin
if (i<=x) and (y<=val) then if mx<A[nod] then mx := A[nod]
else
else begin
mij := (x+y) div 2;
if i<=mij then request(2*nod,x,mij);
if mij<val then request(2*nod+1,mij+1,y);
end;
end;
begin
assign(f,'arbint.in');
reset(f);
assign(g,'arbint.out');
rewrite(g);
readln(f,n,m);
for i := 1 to n do begin
read(f,val);
add(1,1,n);
end;
readln(f);
for l := 1 to m do begin
readln(f,o,i,val);
if o=0 then begin
mx := 0;
request(1,1,n);
writeln(g,mx);
end
else add(1,1,n);
end;
close(f);
close(g);
end.