Pagini recente » Cod sursa (job #3283533) | Cod sursa (job #1346561) | Cod sursa (job #2285631) | Cod sursa (job #1192824) | Cod sursa (job #138460)
Cod sursa(job #138460)
{$IFDEF NORMAL}
{$I-,Q-,R-,S-}
{$ENDIF NORMAL}
{$IFDEF DEBUG}
{$I+,Q+,R+,S-}
{$ENDIF DEBUG}
{$IFDEF RELEASE}
{$I-,Q-,R-,S-}
{$ENDIF RELEASE}
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 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);
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);
break;
break;
end;
break;
end;
{ writeln(ff,p);}
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.