Cod sursa(job #131671)

Utilizator mihai_floreaFlorea Mihai Alexandru mihai_florea Data 4 februarie 2008 12:42:56
Problema Stramosi Scor 90
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.91 kb
program Stramosi;
const nmax=250001;
      pdoi=19;
var a:array[0..pdoi,0..nmax]of longint;{a[i][j]=al 2^i -lea stramos al lui j}
    n,m,p,q,k:longint;
    f,g:text;
function val(nod,nr:longint):longint;{val(q,p)=al p-lea stramos al lui q}
var i,j,t,l:longint;
begin
l:=nr;j:=nod;
while (l>0) do begin
               i:=pdoi-2;
               while (1 shl i>l) do i:=i-1;
               t:=a[i][j];j:=t;
               l:=l-(1 shl i);
               end;
val:=j;
end;
begin
assign(f,'stramosi.in');reset(f);
readln(f,n,m);
for p:=1 to n do begin
                 read(f,q);
                 a[0,p]:=q;
                 end;
for p:=0 to pdoi do a[p][0]:=0;
for p:=1 to pdoi-2 do
 for q:=1 to n do a[p,q]:=a[p-1,a[p-1,q]];
assign(g,'stramosi.out');rewrite(g);
for k:=1 to m do begin
                 readln(f,q,p);
                 writeln(g,val(q,p));
                 end;
close(f);close(g);
end.