Pagini recente » Cod sursa (job #307185) | Cod sursa (job #870027) | Cod sursa (job #881688) | Cod sursa (job #1071613) | Cod sursa (job #687133)
Cod sursa(job #687133)
program rmq;
uses math;
const fi='rmq.in';
fo='rmq.out';
var v:array[1..100000] of integer;
r:array[0..20,1..100000] of integer;
bufin,bufout:array[1..65000] of char;
n,m,i,x,y,j,h,aux:longint;
var f,g:text;
begin
assign(f,fi);
reset(f);
assign(g,fo);
rewrite(g);
settextbuf(f,bufin);
settextbuf(g,bufout);
read(f,n,m);
for i:=1 to n do
begin
readln(f,v[i]);
r[0,i]:=v[i];
end;
for i:=1 to trunc(log2(n)) do
for j:=1 to (n-(1 shl (i))+1) do
r[i,j]:=min(r[i-1,j],r[i-1,j+1 shl (i-1)]);
for i:=1 to m do
begin
read(f,x,y);
h:=trunc(log2(y-x+1));
aux:=y-x+1-(1 shl h);
writeln(g,min(r[h,x],r[h,x+aux]));
end;
close(f);
close(g);
end.