Pagini recente » Cod sursa (job #1120110) | Cod sursa (job #805116) | Cod sursa (job #2709004) | Cod sursa (job #1287001) | Cod sursa (job #329283)
Cod sursa(job #329283)
var a:array[0..17,1..100000] of 1..100000;
n,m,i,x,y,p,d:longint;
f,g:text;
bufin:array[1..65000] of byte;
function min(p1,p2:longint):longint;
begin
if p1<p2 then
min:=p1
else
min:=p2;
end;
begin
assign(f,'rmq.in');
assign(g,'rmq.out');
reset(f);rewrite(g);
settextbuf(f,bufin);
readln(f,n,m);
for i:=1 to n do
readln(f,a[0,i]);
d:=1;
repeat
d:=d*2;
p:=p+1;
for i:=1 to n-d+1 do
a[p,i]:=min(a[p-1,i],a[p-1,i+d div 2]);
until d>=n;
for i:=1 to m do
begin
readln(f,x,y);
d:=1;p:=0;
repeat
d:=d*2;
p:=p+1;
until d>y-x+1;
d:=d div 2;
p:=p-1;
writeln(g,min(a[p,x],a[p,y-d+1]));
end;
close(f);close(g);
end.