Pagini recente » Cod sursa (job #1652894) | Cod sursa (job #2365335) | Cod sursa (job #2403425) | Cod sursa (job #576820) | Cod sursa (job #2198167)
#include <bits/stdc++.h>
using namespace std;
int parent[100005],val[100005];
int n,m,a,b,c;
int search_for_parent(int pos)
{
if(parent[pos]==0)
return pos;
return search_for_parent(parent[pos]);
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d %d\n",&n,&m);
for(int i=1;i<=n;i++)
val[i]=1;
for(int i=1;i<=m;i++)
{
scanf("%d %d %d\n",&c,&a,&b);
if(c==1)
{
int papa1=search_for_parent(a);
int papa2=search_for_parent(b);
if(papa1==papa2)
continue;
if(val[papa1]>=val[papa2])
{
val[papa1]+=val[papa2];
parent[papa2]=papa1;
}
else
{
val[papa2]+=val[papa1];
parent[papa1]=papa2;
}
continue;
}
int papa1=search_for_parent(a);
int papa2=search_for_parent(b);
if(papa1==papa2)
printf("DA\n");
else
printf("NU\n");
}
return 0;
}