Pagini recente » Cod sursa (job #3268434) | Cod sursa (job #995942) | Cod sursa (job #573951) | Cod sursa (job #2147062) | Cod sursa (job #369594)
Cod sursa(job #369594)
#include<stdio.h>
#define infile "disjoint.in"
#define outfile "disjoint.out"
#define nmax (100*1001)
int t[nmax]; //tatal nodului
int n; //numarul de noduri
int m; //numarul de operatii
int find(int i)
{
while(t[i]) i=t[i];
return i;
}
void unit(int i, int j)
{
t[find(i)]=find(j);
}
int main()
{
int i,j,k;
freopen(infile,"r",stdin);
freopen(outfile,"w",stdout);
scanf("%d %d\n",&n,&m);
while(m--)
{
scanf("%d %d %d\n",&i,&j,&k);
if(i==1) unit(j,k); //unim
else if(find(j)==find(k)) printf("DA\n");
else printf("NU\n");
}
fclose(stdin);
fclose(stdout);
return 0;
}