Pagini recente » Cod sursa (job #1960350) | Cod sursa (job #307108)
Cod sursa(job #307108)
program disjoint;
const MAX_N = 100000;
var n, m : integer;
t : array[1..MAX_N] of integer;
i, op, a, b : integer;
procedure union(a, b : integer);
begin
if random(2) = 1 then t[a] := b
else t[b] := a;
end;
function find(a : integer) : integer;
begin
if t[a] <> a then t[a] := find(t[a]);
find := t[a];
end;
// main function starts here
begin
assign(input, 'disjoint.in'); reset(input);
assign(output, 'disjoint.out'); rewrite(output);
read(n, m);
// initialization
for i := 1 to n do
t[i] := i;
// solve
for i := 1 to m do
begin
read(op, a, b);
if op = 1 then union(a, b)
else
if find(a) = find(b) then
writeln('DA')
else
writeln('NU');
end;
end.