Pagini recente » Cod sursa (job #572729) | Cod sursa (job #2834915) | Cod sursa (job #1589683) | Cod sursa (job #2502116) | Cod sursa (job #3281606)
#include <fstream>
#include <vector>
using namespace std;
int n, m;
vector<int> sz;
int Find(int nod)
{
if (sz[nod] < 0)
return nod;
return Find(sz[nod]);
}
void Union(int a, int b)
{
if (a == b)
return;
if (a > b)
swap(a, b);
sz[a] += sz[b];
sz[b] = a;
}
int main()
{
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
cin >> n >> m;
sz.resize(n + 2, -1);
for (int i = 1; i <= m; ++i)
{
int cod, x, y;
cin >> cod >> x >> y;
if (cod == 1 && Find(x) != Find(y))
Union(Find(x), Find(y));
else if (Find(x) == Find(y))
cout << "DA\n";
else
cout << "NU\n";
}
cin.close();
cout.close();
return 0;
}