Pagini recente » Cod sursa (job #1759695) | Cod sursa (job #2328921) | Cod sursa (job #673486) | Cod sursa (job #1869193) | Cod sursa (job #1405483)
#include <stdio.h>
#include <stdlib.h>
int t[100001];
int radacina(int x)
{
if(t[x]==0)
return x;
t[x]=radacina(t[x]);
return t[x];
}
int gasire(int x,int y)
{
int rx=radacina(x);
int ry=radacina(y);
return rx==ry;
}
int unificare(int x,int y)
{
int rx=radacina(x);
int ry=radacina(y);
t[rx]=ry;
}
int main()
{
int n,k,i,q,a,b;
FILE *fin=fopen("disjoint.in","r");
FILE *fout=fopen("disjoint.out","w");
fscanf(fin,"%d%d",&n,&k);
for(i=1; i<=k; i++)
{
fscanf(fin,"%d%d%d",&q,&a,&b);
if(q==2){
if(gasire(a,b)==1)
fprintf(fout,"DA\n");
else
fprintf(fout,"NU\n");
}
else
unificare(a,b);
}
fclose(fin);
fclose(fout);
return 0;
}