Pagini recente » Cod sursa (job #2590324) | Cod sursa (job #2264489) | Cod sursa (job #3039172) | Cod sursa (job #2595553) | Cod sursa (job #1784653)
#include <iostream>
#include <cstdio>
using namespace std;
int f[100005],g[100005],k,i,x,m,j,ct,ok;
int cauta(int x)
{
int k,i,m;
for(k=x;f[k]!=k;k=f[k]);
return k;
}
void unire(int x,int y)
{
int k,i,m;
if(g[x]<g[y])
swap(x,y);
f[y]=x;
g[x]+=g[y];
g[y]=g[x];
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&x,&m);
for(k=1;k<=x;k++)
{
f[k]=k;
g[k]=1;
}
for(k=1;k<=m;k++)
{
scanf("%d%d%d",&ct,&i,&j);
if(ct==2)
{
if(cauta(i)==cauta(j))
printf("DA\n");
else
printf("NU\n");
continue;
}
unire(i,j);
}
return 0;
}