Pagini recente » Cod sursa (job #2583102) | Cod sursa (job #2545447) | Cod sursa (job #3286926) | Cod sursa (job #2871912) | Cod sursa (job #2609679)
#include<cstdio>
using namespace std;
FILE*in=fopen("disjoint.in","r");
FILE*out=fopen("disjoint.out","w");
int n,m,i,p,x,xa,y,ya;
struct deep
{
int dad,dep;
};
deep v[100003];
int fd(int a)
{
if(v[a].dad==0)
{
return a;
}
int ans=fd(v[a].dad);
v[a].dad=ans;
return ans;
}
int main()
{
fscanf(in,"%d%d",&n,&m);
for(i=1;i<=m;i++)
{
fscanf(in,"%d%d%d",&p,&xa,&ya);
if(p==1)
{
x=fd(xa);
y=fd(ya);
if(v[x].dep<v[y].dep)
{
v[x].dad=y;
}
else if(v[x].dep>v[y].dep)
{
v[y].dad=x;
}
else
{
v[x].dad=y;
v[y].dep++;
}
}
else
{
x=fd(xa);
y=fd(ya);
if(x==y)
{
fprintf(out,"DA\n");
}
else
{
fprintf(out,"NU\n");
}
}
}
}