Pagini recente » Cod sursa (job #2904309) | Cod sursa (job #1537145) | Cod sursa (job #1748674) | Cod sursa (job #1265414) | Cod sursa (job #121293)
Cod sursa(job #121293)
type matrice=array [0..18,1..250000] of longint;
var a:matrice;
n,m,i,s,g,q,p,max:longint;
f1,f2:text;
function exponent(pas:longint):integer;
var k:longint;
begin
k:=0;
while pas>=(1 shl k) do
k:=k+1;
exponent:=k-1
end;
procedure rec(nr,exp:longint);
begin
repeat
a[exp,i]:=nr;
if nr<>0 then
nr:=a[exp,nr];
exp:=exp+1
until exp=max+1;
end;
procedure rec2(nod,x:longint);
var e,k:longint;
begin
k:=0;
repeat
if x and 1<>0 then
begin
e:=k;
nod:=a[e,nod];
if nod=0 then
g:=0
else
if x=1 then
g:=nod
end;
k:=k+1;
x:=x shr 1
until (nod=0) or (x=0);
end;
begin
assign(f1,'stramosi.in');
reset(f1);
readln(f1,n,m);
max:=exponent(n);
for i:=1 to n do
begin
read(f1,s);
rec(s,0)
end;
assign(f2,'stramosi.out');
rewrite(f2);
for i:=1 to m do
begin
readln(f1,q,p);
g:=0;
rec2(q,p);
writeln(f2,g)
end;
close(f1);
close(f2)
end.