Pagini recente » Cod sursa (job #366778) | Borderou de evaluare (job #2102502) | Cod sursa (job #2721210) | Cod sursa (job #1480999) | Cod sursa (job #274422)
Cod sursa(job #274422)
var a,b:array[1..1000000] of longint;
f,g:text;
tip,n,m,i,x,y,q,w:longint;
function radacina(x:longint):longint;
var t,aux:longint;
begin
aux:=x;
while a[x]<>x do
x:=a[x];
while a[aux]<>aux do
begin
t:=a[aux];
a[aux]:=x;
aux:=t;
end;
radacina:=x;
end;
begin
assign(f,'disjoint.in'); reset(f);
assign(g,'disjoint.out'); rewrite(g);
read(f,n);
for i:=1 to n do
begin
a[i]:=i;
b[i]:=1;
end;
read(f,m);
for i:=1 to m do
begin
read(f,tip,x,y);
q:=radacina(x);
w:=radacina(y);
case tip of
1: begin
if b[w]>b[q] then a[q]:=w
else a[w]:=q;
if b[w]=b[q] then inc(b[q]);
end;
2: begin
if q=w then writeln(g,'DA')
else writeln(g,'NU');
end;
end;
end;
close(f);
close(g);
end.