Pagini recente » Cod sursa (job #3361137) | Cod sursa (job #3363714) | Cod sursa (job #3361812) | Cod sursa (job #3362093) | Cod sursa (job #3363675)
#include <bits/stdc++.h>
using namespace std;
ifstream in ("disjoint.in");
ofstream out ("disjoint.out");
int n, m;
int dad[100005];
void precalc()
{
for (int i = 1; i <= n; i++)
{
dad[ i ] = i;
}
}
int tata(int x)
{
if (dad[ x ] == x)
return x;
return dad[ x ] = tata( dad[ x ] );
}
void unite(int a, int b)
{
int tata_a = tata( a );
int tata_b = tata( b );
if (tata_a != tata_b)
{
dad[ tata_a ] = tata_b;
}
}
int main()
{
in >> n >> m;
precalc();
for (int i = 1; i <= m; i++)
{
int op, x, y;
in >> op >> x >> y;
if (op == 1)
{
unite( x , y );
} else
{
if (tata( x ) == tata( y ))
{
out << "DA\n";
} else
{
out << "NU\n";
}
}
}
return 0;
}