Pagini recente » Cod sursa (job #2421076) | Cod sursa (job #2856848) | Cod sursa (job #265712) | Cod sursa (job #1496355) | Cod sursa (job #293683)
Cod sursa(job #293683)
program mult_disjuncte;
type lista = ^articol;
articol =record
lider:lista;
end;
var op,i,k,p,n,m:longint;
a:array [1..100000] of lista;
procedure union(k,p:longint);
var xk,xp:lista;
begin
xk:=a[k];
xp:=a[p];
while xk<>xk^.lider do
xk:=xk^.lider;
while xp<>xp^.lider do
xp:=xp^.lider;
a[k]^.lider:=xp;
end;
procedure query(p,k:longint);
begin
if a[p]^.lider=a[k]^.lider then
writeln('DA')
else
writeln('NU');
end;
begin
assign(input,'disjoint.in');
assign(output,'disjoint.out');
reset(input);
rewrite(output);
readln(n,m);
for i:=1 to n do
begin
new(a[i]);
a[i]^.lider:=a[i];
end;
for i:=1 to m do
begin
readln(op,p,k);
if op = 1 then
begin
if p>k then
union(k,p)
else
union(p,k);
end
else
query(p,k);
end;
close(input);
close(output);
end.