Pagini recente » Cod sursa (job #2812939) | Cod sursa (job #1211462) | Cod sursa (job #1843617) | Cod sursa (job #2984948) | Cod sursa (job #1505063)
{$R-}
var f,fo:text;
a:array[1..10000{0}]of longint;
x,y,m,n,i:longint;
rmq:array[0..10000{0},0..10000{0}]of longint;
function min(st,dr:longint):longint;
var m1,m2,mij:longint;
begin
if rmq[st,dr]<>0 then min:=rmq[st,dr]
else
if st<=dr then
if st=dr then begin min:=a[st];rmq[st,dr]:=a[st] end
else
begin
mij:=st+(dr-st)div 2;
m1:=min(st,mij);
m2:=min(mij+1,dr);
if m1<m2 then
begin
min:=m1;
rmq[st,dr]:=m1
end
else
begin
min:=m2;
rmq[st,dr]:=m2
end
end;
end;
begin
assign(f,'rmq.in');
assign(fo,'rmq.out');
reset(f);
readln(f,n,m);
for i:=1 to n do
readln(f,a[i]);
rewrite(fo);
for i:=1 to m do
begin
readln(f,x,y);
writeln(fo,min(x,y));
end;
close(fo);
close(f);
end.