Pagini recente » Cod sursa (job #1542578) | Cod sursa (job #2196484) | Cod sursa (job #2043527) | Cod sursa (job #3178228) | Cod sursa (job #369642)
Cod sursa(job #369642)
#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)
{
int j,k=i;
while(t[i]) i=t[i];
while(t[k]) j=t[k],t[k]=i,k=j;
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;
}