Pagini recente » Cod sursa (job #1958496) | Cod sursa (job #911368) | Cod sursa (job #936793) | Cod sursa (job #262393) | Cod sursa (job #47203)
Cod sursa(job #47203)
var
Osok: array[1..19,0..250000] of longint;
f, g: text;
n, n2, m, i, j, a, b, akt, k: longint;
ketto: array[1..20] of longint;
procedure Keres(a, b: longint);
begin
n := 19;
while (b div ketto[n]) = 0 do
Dec(n);
k := ketto[n];
akt := osok[n,a];
if (k <> b) and (akt <> 0) then
begin
Keres(akt, b - k);
Inc(k);
end;
end;
begin
Assign(f, 'stramosi.in');
Assign(g, 'stramosi.out');
Reset(f);
ReWrite(g);
ReadLn(f, n, m);
ketto[1] := 1; for i := 2 to 20 do ketto[i] := ketto[i-1] * 2;
n2 := 19;
while (n div ketto[n2]) = 0 do Dec(n2);
for i := 1 to n do
begin
Read(f, a);
Osok[1,i] := a;
end;
for j := 2 to n2 do
for i := 1 to n do
osok[j,i] := osok[j - 1,osok[j - 1,i]];
for i := 1 to m do
begin
ReadLn(f, a, b);
Keres(a, b);
Writeln(g, akt);
end;
Close(f);
Close(g);
end.