Cod sursa(job #45418)

Utilizator QbyxEros Lorand Qbyx Data 1 aprilie 2007 14:48:48
Problema Stramosi Scor 70
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.81 kb
type pelem = ^elem;
   elem = record
     x: longint;
     os: pelem;
   end;
var
  Osok: array[1..150000] of pelem;
  akt: pelem;
  f, g: text;
  n, m, i, a, b: longint;
begin
  Assign(f, 'stramosi.in');
  Assign(g, 'stramosi.out');
  Reset(f);
  ReWrite(g);

  ReadLn(f, n, m);
  for i := 1 to n do New(Osok[i]);

  for i := 1 to n do
    begin
      Read(f, a);
      if a <> 0 then Osok[i]^.os := Osok[a]
      else Osok[i]^.os := NIL;
      Osok[i]^.x := i;
    end;

  for i := 1 to m do
    begin
      ReadLn(f, a, b);
      akt := Osok[a];
      n := 1;
      while (n <> b) and (akt^.os <> nil) do
        begin
          Inc(n);
          akt := akt^.os;
        end;
      if akt^.os <> nil then WriteLn(g, akt^.os^.x) else WriteLn(g, '0');
    end;
  Close(f);
  Close(g);
end.