Pagini recente » Cod sursa (job #2880334) | Profil FiodorMaria | Cod sursa (job #1321366) | Cod sursa (job #1295800) | Cod sursa (job #201820)
Cod sursa(job #201820)
program stramosi_010;
var a:array[0..300000,0..20] of longint;
p:array[0..20] of longint;
n,m:longint; l2:real;
procedure puteri;
var i:byte; x:longint;
begin
x:=1;
for i:=0 to 20 do begin
p[i]:=x;
x:=x shl 1;
end;
end;
{function stramos(u,v:longint):longint;
var w:longint;
begin
while v>0 do begin
w:=trunc(ln(v)/l2);
u:=a[u,w];
v:=v-p[w];
end;
exit(u);
end;}
procedure main;
var i,j,r,l,u,v,w:longint;
begin
assign(input,'stramosi.in'); reset(input);
assign(output,'stramosi.out'); rewrite(output);
readln(n,m); r:=trunc(ln(n)/l2);
for i:=1 to n do read(a[i,0]);
for j:=1 to r do begin
for i:=1 to n do begin
a[i,j]:=a[a[i,j-1],j-1];
end;
end;
for l:=1 to m do begin
readln(u,v);
while v>0 do begin
w:=trunc(ln(v)/l2);
u:=a[u,w];
v:=v-p[w];
end;
writeln(u);
end;
close(output); close(input);
end;
BEGIN
l2:=ln(2);
puteri;
main;
END.