Cod sursa(job #569470)

Utilizator ion_calimanUAIC Ion Caliman ion_caliman Data 1 aprilie 2011 15:36:32
Problema Lowest Common Ancestor Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.51 kb
var     a:array[1..100000] of longint;
        n,m,i,t,u,v:longint;
        f,g:text;
begin
  assign(f,'lca.in');
  assign(g,'lca.out');
  reset(f);
  rewrite(g);
  readln(f,n,m);
  for i:=1 to n-1 do
    read(f,a[i]);
  for i:=1 to m do
    begin
      readln(f,u,v);
      dec(u);
      dec(v);
      if u>v then begin t:=u; u:=v; v:=t; end;
      while (a[u]<>a[v])and(u<>a[v]-1)and(v<>a[u]) do
        if a[u]>a[v] then u:=a[u]-1 else v:=a[v]-1;
      writeln(g,a[v]);
    end;
  close(g);
end.