Pagini recente » Cod sursa (job #1868355) | Cod sursa (job #1166998) | Cod sursa (job #305278) | Cod sursa (job #830390) | Cod sursa (job #138458)
Cod sursa(job #138458)
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.