Cod sursa(job #138472)

Utilizator Pharaoh****** Pharaoh Data 18 februarie 2008 18:14:33
Problema Stramosi Scor 90
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.21 kb
{$S-,R-,I-,O-}
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;

procedure rez;
begin
while (q>0)and(p<>0) do
        for j:=1 to 18 do
            	if (1 shl j>q)and(p<>0) then begin
                								p:=a[p,j-1];
                                                q:=q-(1 SHL (j-1));
                                                if (p=0)or(q=0) then begin writeln(ff,p); exit; end;
                                                break;
                                              end;

        writeln(ff,p);
end;


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 17 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);
		rez;

    end;{
        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.