Pagini recente » Cod sursa (job #1877225) | Cod sursa (job #3282135) | Cod sursa (job #2292415) | Cod sursa (job #2533528) | Cod sursa (job #574916)
Cod sursa(job #574916)
var a,b:array[1..100000] of longint;
n,m,i,j,t,u,v:longint;
f,g:text;
begin
assign(f,'lca.in');
assign(g,'lca.out');
reset(f);
rewrite(g);
readln(f,n,m);
a[1]:=0;
for i:=2 to n do
read(f,a[i]);
for i:=1 to n do
b[i]:=0;
{ for i:=n downto 2 do
begin
j:=a[i];
while j>0 do
begin
inc(b[j]);
j:=a[j];
end;
end;
for i:=n downto 2 do
begin
j:=a[i];
while b[j]<2 do
j:=a[j];
a[i]:=j;
end; }
for i:=1 to m do
begin
readln(f,u,v);
while u<>v do
if u>v then u:=a[u] else v:=a[v];
writeln(g,v);
end;
close(g);
end.