Pagini recente » Cod sursa (job #2948299) | Cod sursa (job #739644) | Cod sursa (job #1933797) | Cod sursa (job #1932926) | Cod sursa (job #1765408)
#include <iostream>
#include <fstream>
#define NMAX 50004
using namespace std;
int v[2 * NMAX], h[2 * NMAX];
int rad (int x)
{
if (v[x] != x)
v[x] = rad(v[x]);
return v[x];
}
void uni (int x, int y)
{
if (h[rad(x)] > h[rad(y)])
{
h[rad(x)] += h[rad(y)];
v[rad(y)] = rad(x);
}
else
{
h[rad(y)] += h[rad(x)];
v[rad(x)] = rad(y);
}
}
int n, s, m;
int main()
{
ifstream cin ("disjoint.in");
ofstream cout ("disjoint.out");
cin >> n >> m;
for (int i = 1; i <= n ; i ++ )
{
v[i] = i;
h[i] = 1;
}
for (int i = 1; i <= m; i++)
{
int type, x, y;
cin >> type;
if (type == 1)
{
cin >> x >> y;
uni (x, y);
}
else
{
cin >> x >> y;
if (rad(x) == rad (y))
cout << "DA";
else
cout << "NU";
cout << "\n";
}
}
return 0;
}