Pagini recente » Cod sursa (job #1822366) | Cod sursa (job #402632) | Cod sursa (job #2032214) | Cod sursa (job #180670) | Cod sursa (job #2354531)
#include<cstdio>
int sef[100005];
int sefsuprem(int x)
{
if(sef[x]==x)
return x;
else
return sef[x]=sefsuprem(sef[x]);
}
void unire(int x,int y)
{
int sefx=sefsuprem(x);
int sefy=sefsuprem(y);
sef[sefx]=sefy;
}
int main()
{
FILE *fin=fopen("disjoint.in","r"), *fout=fopen("disjoint.out","w");
int n,cer,x,y,cate;
fscanf(fin,"%d%d",&cate,&n);
for(int i=1;i<=cate;i++)
sef[i]=i;
for(int i=1;i<=n;i++)
{
fscanf(fin,"%d%d%d",&cer,&x,&y);
if(cer==1)
unire(x,y);
else
if(sefsuprem(x)==sefsuprem(y))
fprintf(fout,"DA\n");
else
fprintf(fout,"NU\n");
}
return 0;
}