Pagini recente » Cod sursa (job #63872) | Cod sursa (job #2714949) | Cod sursa (job #507436) | Cod sursa (job #1868841) | Cod sursa (job #1635486)
#include <iostream>
#include <cstdio>
using namespace std;
int n,m1,m[100008];
inline int rad(int nod)
{
int rad,strt=nod,aux;
while(m[nod]!=nod) nod=m[nod]; rad=nod;
while(m[strt]!=strt) { aux=m[strt]; m[strt]=rad; strt=aux; }
return rad;
}
inline void unite(int v1,int v2)
{
m[v2]=m[v1];
}
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;
}