Pagini recente » Cod sursa (job #1320823) | Cod sursa (job #1901692) | Cod sursa (job #2379395) | Cod sursa (job #135173) | Cod sursa (job #921983)
Cod sursa(job #921983)
Program p1;
var fi,fo:text; b:array[0..1 shl 20] of char;
i,j,n,m,lim,x,y,k:longint; a:array[0..100005,0..18] of longint;
Function min(a,b:longint):longint;
begin
if a<b then min:=a else min:=b;
end;
Procedure rmq;
begin
lim:=0;
while (1 shl lim)<n do inc(lim);
for j:=1 to lim do
for i:=1 to n+1-(1 shl j) do
a[i,j]:=min(a[i,j-1],a[i+(1 shl (j-1)),j-1]);
end;
begin
assign(fi,'rmq.in'); reset(fi);
assign(fo,'rmq.out'); rewrite(fo);
settextbuf(fi,b); readln(fi,n,m);
for i:=1 to n do readln(fi,a[i,0]);
rmq;
for i:=1 to m do begin
readln(fi,x,y);
writeln(fo,min(a[x,k],a[y-(1 shl k)+1,k]));
end;
close(fi); close(fo);
end.