Cod sursa(job #581412)

Utilizator andreifirstCioara Andrei Ioan andreifirst Data 14 aprilie 2011 09:35:54
Problema Paduri de multimi disjuncte Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.71 kb
var v:array [1..100000] of longint;
    buf1, buf2:array [1..1 shl 17] of char;
    i, m, n, c, x, y, p:longint;
    ok:boolean;
    f, g:text;

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

read (f, n, m);
for i := 1 to m do
  begin
  read (f, c, x, y);
  case c of
    1:begin
      if x>y then begin p:=x; x:=y; y:=p; end;
      while v[x] <> 0 do x:=v[x];
      while v[y] <> 0 do y:=v[y];
      v[y]:=x;
      end;
    2:begin
      while v[x] <> 0 do x:=v[x];
      while v[y] <> 0 do y:=v[y];
      if x=y then writeln (g, 'DA') else writeln (g, 'NU');
      end;
    end;
  end;

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