Cod sursa(job #679633)

Utilizator andreifirstCioara Andrei Ioan andreifirst Data 13 februarie 2012 16:39:22
Problema Stramosi Scor 40
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.83 kb
var v:array [0..250000, 0..20] of longint;
    i, j, n, m, x, y, z, t:longint;
    f, g:text;
    ok:boolean;
    buf1, buf2:array [1.. 1 shl 17] of char;

begin
assign (f, 'stramosi.in');settextbuf (f, buf1); reset (f);
assign (g, 'stramosi.out'); settextbuf (g, buf2); rewrite (g);

read (f, n, m);
for i := 1 to n do read (f, v[i, 1]);

ok:=true; i:=1;
while ok do
  begin
  ok:=false;
  for j := 1 to n do
    begin
    if v[j, i]<>0 then
      begin
      v[j, i+1]:=v[v[j, i], i];
      if v[j, i+1] <> 0 then ok:=true;
      end;
    end;

  inc (i);
  end;

for i := 1 to m do
  begin
  read (f, x, y);
  while (x<>0) and (y<>0) do
    begin
    z:=(y xor (y-1)) and y;
    t:= trunc (ln(z)/ln(2))+1;

    x:=v[x, t];
    y:=y xor z;
    end;
  writeln (g, x);
  end;

close (f); close (g);
end.