Pagini recente » Cod sursa (job #1864070) | Cod sursa (job #1048067) | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #1766928)
#include <iostream>
#include <cstdio>
using namespace std;
const int Nmax = 100005;
int n,m, dad[Nmax];
int radacina(int x)
{
while(x!=dad[x])
x=dad[x];
return x;
}
void reuniune(int a, int b)
{
dad[b]=radacina(a);
}
void Read_Solve()
{
scanf("%d%d", &n, &m);
int t;
for(int i=1; i<=n; ++i)
dad[i]=i;
for(int i=1; i<=m; ++i)
{
int x,y;
scanf("%d%d%d", &t,&x,&y);
if(t==1)
dad[y]=radacina(x);
else if(t==2)
{if(radacina(x)==radacina(y))
printf("DA\n");
else
printf("NU\n");
}
}
}
int main()
{
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
Read_Solve();
return 0;
}