Cod sursa(job #1626261)

Utilizator TirauStelianTirau Ioan Stelian TirauStelian Data 3 martie 2016 00:05:30
Problema Paduri de multimi disjuncte Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.69 kb
program disjunct;
var f,g:text;
    n,m,y,i,x,opt:longint;
    t:array of longint;
    bufin,bufout:array [1..1 shl 16] of char;
  function radacina(varf:longint):longint;
  begin
    while t[varf]<>0 do
      varf:=t[varf];
    radacina:=varf;
  end;
begin
  assign(f,'disjoint.in'); reset(f);
  assign(g,'disjoint.out'); rewrite(g);
  settextbuf(f,bufin); settextbuf(g,bufout);
  readln(f,n,m);
  setlength(t,n+1);
  for i:=1 to m do
    begin
      readln(f,opt,x,y);
      if opt=1 then
        t[radacina(y)]:=radacina(x)
      else
        if radacina(x)=radacina(y) then
          writeln(g,'DA')
        else
          writeln(g,'NU');
    end;
  close(f); close(g);
end.