Pagini recente » Cod sursa (job #188087) | Rezultatele filtrării | Cod sursa (job #1361749) | Cod sursa (job #145416) | Cod sursa (job #175956)
Cod sursa(job #175956)
var i,j,n,k,nr,m:longint;
p,q:longint;
v:array[0..20,0..250000] of longint;
que:array[1..300000,1..2] of longint;
begin
assign(input,'stramosi.in'); reset(INPUT);
assign(output,'stramosi.out'); rewrite(output);
readln(n,m);
k:=1;
for i:=1 to n do
read(v[0,i]);
readln;
for i:=1 to m do readln(que[i,1],que[i,2]);
while 2*k<=n do begin
k:=k*2;
nr:=nr+1;
end;
for i:=1 to nr do
for j:=1 to n do
v[i,j]:=v[i-1,v[i-1,j]];
for i:=1 to m do begin
q:=que[i,1]; p:=que[i,2];
repeat
k:=0;
while 1 shl k<=p do inc(k);
dec(k);
q:=v[k,q]; p:=p-1 shl k;
until p=0;
writeln(q);
end;
close(input); close(output);
end.