Pagini recente » Cod sursa (job #2237917) | Cod sursa (job #2642738) | Cod sursa (job #454169) | Cod sursa (job #2357190) | Cod sursa (job #372709)
Cod sursa(job #372709)
var i,j,n,m,l,r:longint;
p:array[0..100000,0..18] of longint; {17}
log:array[1..100000] of byte;
bufin:array[1..100000] of byte;
inpu,outpu:text;
begin
assign(inpu,'rmq.in');
reset(inpu);
settextbuf(inpu,bufin);
assign(outpu,'rmq.out');
rewrite(outpu);
readln(n,m);
for i:=1 to n do readln(p[i,0]);
for i:=2 to n do
log[i]:=log[i shr 1]+1;
for j:=1 to log[n] do
for i:=1 to n-(1 shl j)+1 do begin
if p[i,j-1]<p[i+(1 shl (j-1)),j-1] then
p[i,j]:=p[i,j-1]
else
p[i,j]:=p[i+(1 shl (j-1)),j-1];
end;
for i:=1 to m do begin
readln(l,r);
if p[l,log[r-l+1]]<p[r-(1 shl log[r-l+1])+1,log[r-l+1]] then
writeln(p[l,log[r-l+1]])
else writeln(p[r-(1 shl log[r-l+1])+1,log[r-l+1]]);
end;
close(inpu);
close(outpu);
end.