Pagini recente » Cod sursa (job #2612978) | Cod sursa (job #467020) | Cod sursa (job #233443) | Cod sursa (job #1055065) | Cod sursa (job #2883615)
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n, i, x, y, m, o, s[100001], r[100001];
int root (int x)
{
while (x != r[x])
x = r[x];
return x;
}
void join (int x, int y)
{
x = root(x);
y = root(y);
if (s[x] > s[y]) swap (x, y);
r[x] = y;
s[y] += s[x];
}
int main()
{
fin >> n >> m;
for (i = 1; i <= n; i++)
r[i] = i, s[i] = 1;
for (i = 1; i <= m; i++)
{
fin >> o >> x >> y;
switch (o)
{
case 1:
join(x, y);
break;
case 2:
if (root(x) == root(y))
fout << "DA\n";
else fout << "NU\n";
}
}
return 0;
}