Pagini recente » Diferente pentru problema/piese2 intre reviziile 9 si 8 | Diferente pentru problema/amprenta intre reviziile 3 si 2 | Diferente pentru utilizator/moise_andrei intre reviziile 6 si 5 | Diferente pentru utilizator/narcys01 intre reviziile 3 si 2 | Cod sursa (job #36700)
Cod sursa(job #36700)
type rec=record
nr,ses:longint;
end;
var a,c:array[0..250000] of longint;
b:array[0..250000] of rec;
p,j,m,n,q,i:longint;
f,g:text;
ok:boolean;
begin
assign(f,'stramosi.in');
assign(g,'stramosi.out');
reset(f);
rewrite(g);
read(f,n,m);
for i:=1 to n do
read(f,a[i]);
for i:=1 to m do begin
read(f,q,p);
j:=0;
ok:=true;
while (j<p) and ok do begin
inc(j);
q:=a[q];
if b[q].ses<>i then begin
b[q].nr:=j;
b[q].ses:=i;
c[j]:=q;
end
else ok:=false;
end;
if j<>p then
q:=c[b[q].nr+(p mod (j-b[q].nr))];
writeln(g,q)
end;
close(f);
close(g);
end.