Pagini recente » Cod sursa (job #431466) | Cod sursa (job #857520) | Cod sursa (job #828436) | Cod sursa (job #1998042) | Cod sursa (job #1422751)
var n,m,i,j,k,p,d,b,x,y:longint;
// buf:array[1..100000] of char;
a:array[0..30,0..100000] of longint;
// c:array[1..100000] of longint;
function min(a,b:longint):longint;
begin
if a<b then min:=a
else min:=b
end;
begin
assign(input,'rmq.in');
assign(output,'rmq.out');
reset(input);
rewrite(output);
// assign(input,'input.in');
// settextbuf(input,buf);
read(n,m);
// j:=1;
// p:=0;
// c[1]:=0;
// for i:=2 to n do begin
// if j*2=i then begin
// inc(p);
// j:=j*2;
// c[i]:=p;
// end else
// c[i]:=c[i-1];
// end;
for i:=1 to n do
read(a[0,i]);
p:=1;
i:=1;
while p<=n do begin
j:=1;
while j+p <= n do begin
a[i,j]:=min(a[i-1,j],a[i-1,j+p]);
inc(j);
end;
inc(i);
p:=p*2;
end;
// for k:=0 to i do begin
// for p:=1 to n do
// write(a[k,p]:5);
// writeln;
// end;
for k:=1 to m do begin
read(x,y);
d:=y-x+1;
b:=trunc(ln(d)/ln(2));
p:=1 shl b;
write(b,' ',p,' ');
writeln(min(a[b,x],a[b,y-p+1]));
end;
end.