Cod sursa(job #45553)

Utilizator QbyxEros Lorand Qbyx Data 1 aprilie 2007 17:47:54
Problema Stramosi Scor 70
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.86 kb
type pelem = ^elem;
   elem = record
     x: longint;
     os: pelem;
   end;
var
  Osok: array[1..250000] of pelem;
  akt: longint;
  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]^.x;
      n := 1;
      while (n <> b) and (Osok[akt]^.os <> NIL) do
        begin
          Inc(n);
          akt := Osok[akt]^.os^.x;
        end;
      if Osok[akt]^.os <> NIL then akt := Osok[akt]^.os^.x else akt := 0;
      WriteLn(g, akt);
    end;
  Close(f);
  Close(g);
end.