Cod sursa(job #1505054)

Utilizator ili226Vlad Ilie ili226 Data 18 octombrie 2015 18:13:08
Problema Range minimum query Scor 30
Compilator fpc Status done
Runda Arhiva educationala Marime 0.58 kb
var f,fo:text;
    a:array[1..100000]of longint;
    x,y,m,n,i:longint;
function min(st,dr:longint):longint;
var m1,m2,mij:longint;
begin
 if st<=dr then
  if st=dr then min:=a[st]
	   else
   begin
    mij:=st+(dr-st)div 2;
    m1:=min(st,mij);
    m2:=min(mij+1,dr);
    if m1<m2 then
     min:=m1
	     else
     min:=m2
   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.