Pagini recente » Cod sursa (job #2252511) | Cod sursa (job #1159053) | Cod sursa (job #623981) | Cod sursa (job #1792907) | Cod sursa (job #961338)
Cod sursa(job #961338)
#include <cstdio>
using namespace std;
int v[100005];
inline int Find(int a)
{
int i=a,rad;
while(v[a]>0)
a=v[a];
rad=a;
while(v[i]>0)
{
a=v[i];
v[i]=rad;
i=a;
}
return rad;
}
inline void Union(int a,int b)
{
v[a]+=v[b];
v[b]=a;
}
int main()
{
int n,m,i,t,cod,a,b;
freopen ("disjoint.in","r",stdin);
freopen ("disjoint.out","w",stdout);
scanf("%d%d", &n,&m);
for(i=1;i<=n;i++)
v[i]=-1;
for(t=1;t<=m;t++)
{
scanf("%d%d%d", &cod,&a,&b);
if(cod==1)
{
a=Find(a);b=Find(b);
Union(a,b);
}
else
{
a=Find(a);b=Find(b);
if(a==b)
printf("DA\n");
else
printf("NU\n");
}
}
return 0;
}