Pagini recente » Cod sursa (job #1848013) | Cod sursa (job #1770709) | Cod sursa (job #753425) | Cod sursa (job #2721429) | Cod sursa (job #1821797)
#include <cstdio>
#define NMax 100000
int fiu[NMax+1];
inline int Find(int x)
{
int v,rad=x;
while( fiu[rad] ) rad = fiu[rad];
while( fiu[x] )
{
v = fiu[x];
fiu[x] = rad;
x = v;
}
return rad;
}
inline void Union(int x, int y)
{
int a,b;
a = Find(x);
b = Find(y);
fiu[a] = b;
}
int main(){
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
int i,N,M,t,x,y,a,b;
scanf("%d %d",&N,&M);
for(i = 1; i <= M; ++i)
{
scanf("%d %d %d",&t,&x,&y);
if( t==1 ) Union(x,y);
else
{
a = Find(x);
b = Find(y);
if( a ^ b ) printf("NU\n");
else printf("DA\n");
}
}
return 0;
}