Pagini recente » Cod sursa (job #1620623) | Cod sursa (job #2974382) | Cod sursa (job #826163) | Cod sursa (job #695135) | Cod sursa (job #336510)
Cod sursa(job #336510)
var v:array[1..20,1..250000] of longint;
u:array[1..250000] of longint;
n,m,i,r,j,q,p,sol,d,k:longint;
f,g:text;
begin
assign(f,'stramosi.in');
assign(g,'stramosi.out');
reset(f);rewrite(g);
readln(f,n,m);
for i:=1 to n do
read(f,v[1,i]);
readln(f);
d:=1;
while d<n do
begin
d:=d*2;
r:=r+1;
end;
for i:=1 to n do
for j:=2 to r do
if v[j-1,i]=0 then
v[j,i]:=0
else
v[j,i]:=v[1,v[j-1,i]];
for i:=1 to n do
begin
sol:=v[r,i];
for j:=2 to r do
if sol<>0 then
sol:=v[r,sol];
u[i]:=sol;
end;
for i:=1 to m do
begin
readln(f,q,p);
sol:=q;
for k:=1 to p div (r*r) do
if sol<>0 then
sol:=u[sol];
for j:=1 to (p mod (r*r)) div r do
if sol<>0 then
sol:=v[r,sol];
if (sol<>0) and ((p mod (r*r)) mod r<>0) then
sol:=v[p mod r,sol];
writeln(g,sol);
end;
close(f);close(g);
end.