Cod sursa(job #36657)

Utilizator marius21Marius Petcu marius21 Data 23 martie 2007 22:42:45
Problema Stramosi Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.71 kb
type rec=record
nr,ses:longint;
end;
var a,c:array[0..250000] of longint;
b:array[0..250000] of rec;
num,p,x,j,m,n,q,i:longint;
f,g:text;
found:boolean;
begin
assign(f,'stramosi.in');
assign(g,'stramosi.out');
reset(f);
rewrite(g);
read(f,n,m);
for i:=1 to n do
2   read(f,a[i]);
for i:=1 to m do begin
   read(f,q,p);
   j:=0;
   found:=false;
   num:=0;
   while (j<p) and not found do begin
      inc(j);
      q:=a[q];
      if b[q].ses<>i then begin
         b[q].nr:=j;
         b[q].ses:=i;
         inc(num);
         c[num]:=q;
      end
      else found:=true;
   end;
   if j<>p then
      q:=c[b[q].nr+(p mod (j-b[q].nr))];

   writeln(g,q)
end;
close(f);
close(g);
end.