Pagini recente » Cod sursa (job #2731319) | Cod sursa (job #2747541) | Cod sursa (job #454307) | Cod sursa (job #1274559) | Cod sursa (job #372713)
Cod sursa(job #372713)
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;
function min(a,b:longint):longint;
begin
if a<b then min:=a else min:=b;
end;
begin
assign(inpu,'rmq.in');
reset(inpu);
settextbuf(inpu,bufin);
assign(outpu,'rmq.out');
rewrite(outpu);
readln(inpu,n,m);
for i:=1 to n do readln(inpu,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
p[i,j]:=min(p[i,j-1],p[i+(1 shl (j-1)),j-1]);
end;
for i:=1 to m do begin
readln(inpu,l,r);
writeln(outpu,min(p[l,log[r-l+1]],p[r-(1 shl log[r-l+1])+1,log[r-l+1]]));
end;
close(inpu);
close(outpu);
end.