Pagini recente » Cod sursa (job #47835) | Cod sursa (job #2132162) | Cod sursa (job #2354392) | Cod sursa (job #3206478) | Cod sursa (job #131629)
Cod sursa(job #131629)
program Stramosi;
const nmax=250000;
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(q,p:longint):longint;{val(q,p)=al p-lea stramos al lui q}
var i,j:integer;
begin
if p>0 then
begin
i:=0;j:=1;
while (j<=p) do begin j:=j*2; i:=i+1; end;
j:=j div 2;i:=i-1;
val:=val(a[i][q],p-j);
end
else val:=q;
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 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.