Cod sursa(job #562432)

Utilizator ion_calimanUAIC Ion Caliman ion_caliman Data 23 martie 2011 00:46:03
Problema Arbori de intervale Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.71 kb
var     a,b:array[1..100000]of longint;
        n,m,i,j,min,x,y,r:longint;
        f,g:text;
begin
  assign(f,'rmq.in');
  assign(g,'rmq.out');
  reset(f);
  rewrite(g);
  readln(f,n,m);
  for i:=1 to n do
    readln(f,a[i]);
  r:=trunc(sqrt(n));
  for i:=1 to r do
    begin
      b[i]:=a[(i-1)*r+1];
  for j:=(i-1)*r+1 to i*r do
    if a[j]<b[i] then b[i]:=a[j];
    end;

  for i:=1 to m do
    begin
      readln(f,x,y);
      min:=a[x];
      for j:=x div r+1 to y div r do
        if b[j]<min then min:=b[j];
      for j:=x to x+x mod r do
        if a[j]<min then min:=a[j];
      for j:=y-y mod r to y do
        if a[j]<min then min:=a[j];
      writeln(g,min);
    end;
  close(g);
end.