Cod sursa(job #35554)

Utilizator floringh06Florin Ghesu floringh06 Data 22 martie 2007 10:34:21
Problema Stramosi Scor 60
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.78 kb
var fi,fo:text;
    j,i,n,m,st,vl,a,b,ct:longint;
    s:array[0..250000,0..18] of longint;


  procedure work;
   var i,j,p,k:integer;
    begin
     for j:=1 to ct do
       for i:=1 to n do
         s[i,j]:=s[s[i,j-1],j-1];
    end;




begin
 assign(fi,'stramosi.in'); reset(fi);
 assign(fo,'stramosi.out'); rewrite(fo);
 readln(fi,n,m);
 for i:=1 to n do
  begin
   read(fi,s[i,0]);
  end;
 st:=1;
 while st<=n do
  begin
   st:=st shl 1;
   inc(ct);
  end;
 work;

 for i:=1 to m do
  begin
   readln(fi,a,b);
   vl:=a;
  while b>0 do
  begin
   st:=1;
   ct:=0;
   while st<=b do
   begin
    st:=st shl 1;
    inc(ct);
   end;
   dec(ct);
   st:=st shr 1;
   b:=b-st;
   vl:=s[vl,ct];
  end;
 writeln(fo,vl);
  end;
close(fo);
end.