Pagini recente » Cod sursa (job #1017041) | Cod sursa (job #2691056) | Cod sursa (job #3246742) | Cod sursa (job #3285805) | Cod sursa (job #1392548)
# include <cstdio>
# define MAX 100005
using namespace std;
int t[MAX];
int n, m, OP, x, y;
int find (int x)
{
if(t[x] == x) return x;
int y = find(t[x]);
t[x] = y;
return y;
}
void reuniune (int x, int y)
{
x = find(x);
y = find(y);
t[x] = y;
/*
if (rang[x] > rang[y]) t[y] = x;
else if (rang[x] < rang[y]) t[x] = y;
else
{
rang[x]++;
t[y] = x;
} */
}
int main ()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&n, &m);
for (int i = 1; i <= n; i++)
t[i] = i;
for (int i = 1; i <= m; i++)
{
scanf("%d%d%d", &OP, &x, &y);
if (OP == 1) reuniune(x,y);
if (OP == 2)
{
if (find(x) == find(y)) printf("DA\n");
else printf ("NU\n");
}
}
return 0;
}