Pagini recente » Cod sursa (job #1747304) | Cod sursa (job #2620583) | Cod sursa (job #1101002) | Cod sursa (job #1860794) | Cod sursa (job #1172532)
program Paduri_de_multimi_disjuncte;
var parent:array[0..100000] of longint;
n,m,i,j,x,y,op,a,b,g,f,rx,ry,k:longint;
function find(x:longint):longint;
begin
if x=parent[x] then
find:=x
else
begin
find:=
find(parent[x]);
inc(k);
end;
end;
begin
assign(input,'disjoint.in');
reset(input);
assign(output,'disjoint.out');
rewrite(output);
readln(n,m);
for i:=1to n do parent[i]:=i;
for j:=1 to m do
begin
readln(op,x,y);
if op=1 then begin
k:=0;
g:=find(x);
rx:=k;
while parent[x]<>g do
begin
f:=x;
x:=parent[f];
parent[f]:=g;
end;
k:=0;
A:=find(y);
ry:=k;
while parent[y]<>a do
begin
b:=y;
y:=parent[b];
parent[b]:=a;
end;
if rx<ry then
parent[g]:=a
else parent[a]:=g;
end
else
begin
if
find(x)=find(y) then
writeln('DA') else
writeln('NU');
end;
end;
readln;
end.