Cod sursa(job #138429)

Utilizator Pharaoh****** Pharaoh Data 18 februarie 2008 17:13:44
Problema Stramosi Scor 80
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.71 kb
type mat=array[0..250000,0..18]of longint;
var a:mat;
	i,j,n,m,r,p,q,qq,c:longint;
    f,ff:text;

begin
assign(f,'stramosi.in'); reset(f);
readln(f,n,m);
for i:=1 to n do read(f,a[i,0]);

for i:=1 to n do
	for j:=1 to 18 do a[i,j]:=a[a[i,j-1],j-1];

assign(ff,'stramosi.out'); rewrite(ff);

for i:=1 to m do
	begin

    	readln(f,p,q);
        r:=p;

        while ((q>0)and(r<>0)) do
        	begin

              c:=0; qq:=1;
     		  while ((2*qq<=q)and(r<>0)) do
       			 	begin
            	   	qq:=qq*2;
              		inc(c);
       		  end;

              r:=a[r,c];
              q:=q-qq;

            end;

        writeln(ff,r);

    end;

close(f); close(ff);

end.