Pagini recente » Cod sursa (job #2166387) | Cod sursa (job #533683) | Cod sursa (job #1615953) | Cod sursa (job #2907953) | Cod sursa (job #3128311)
#include <bits/stdc++.h>
using namespace std;
int sz[100002];
int Find(int nod)
{
if(sz[nod] < 0)
return nod;
sz[nod] = Find(sz[nod]);
return sz[nod];
}
void Union(int a, int b)
{
if(a == b)
return;
if(sz[a] > sz[b])
swap(a, b);
sz[a] += sz[b];
sz[b] = a;
}
int main()
{
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int n, q;
cin >> n >> q;
for(int i = 1; i <= n; i++)
sz[i] = -1;
for(int i = 1; i <= q; i++)
{
int tip, a, b;
cin >> tip >> a >> b;
if(tip == 1)
Union(Find(a), Find(b));
else
{
if(Find(a) == Find(b))
cout << "DA\n";
else
cout << "NU\n";
}
}
return 0;
}