Pagini recente » Cod sursa (job #1539485) | Cod sursa (job #1715041) | Cod sursa (job #2275040) | Istoria paginii utilizator/loghin_antonia | Cod sursa (job #1650484)
#include <iostream>
#include <cstdio>
using namespace std;
int n,m1,m[100008];
int rad(int nod)
{
if(m[nod]==nod) return nod;
m[nod]=rad(m[nod]);
return m[nod];
}
inline void unite(int a,int b)
{
m[b]=a;
}
int main()
{
int i,op,v1,v2;
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&n,&m1);
for(i=1;i<=n;i++) m[i]=i;
for(;m1;m1--)
{
scanf("%d%d%d",&op,&v1,&v2);
if(op==2)
{
if(rad(v1)==rad(v2)) printf("DA\n");
else printf("NU\n");
} else unite(rad(v1),rad(v2));
}
fclose(stdin);
fclose(stdout);
return 0;
}