Cod sursa(job #335494)

Utilizator zseeZabolai Zsolt zsee Data 30 iulie 2009 03:03:02
Problema Range minimum query Scor 30
Compilator fpc Status done
Runda Arhiva educationala Marime 0.81 kb
program jaj;
type szam=0..100000;
     nagyszam=0..1000000;
     uff=record
          x:szam;
          i:szam;
         end;

var n,a,b,min,i,j:szam;
    m:nagyszam;
    v:^uff;{array[1..10]of uff;}
    p:uff;
    ki,be:text;

begin
 assign(be,'rmq.in');
 assign(ki,'rmq.out');
 reset(be);
 rewrite(ki);
 readln(be,n,m);
 getmem(v,sizeof(uff)*n);
 for i:=1 to n do
  begin
   readln(be,v[i].x);
   v[i].i:=i;
  end;

 for i:=1 to n-1 do
  begin
   min:=i;
   for j:=i+1 to n do
     if v[min].x>v[j].x then min:=j;
   p:=v[i];
   v[i]:=v[min];
   v[min]:=p;
  end;


 for i:=1 to m do
  begin
   readln(be,a,b);
   for j:=1 to 100000 do
     if (v[j].i>=a)and(v[j].i<=b) then
       begin
        min:=v[j].x;
        break;
       end;
   writeln(ki,min);
  end;
 close(ki);
end.