Cod sursa(job #562844)

Utilizator rootsroots1 roots Data 23 martie 2011 23:00:33
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <stdio.h>

#define Dim 100001

int T[Dim];

int tata(int nod)
{
	if(nod!=T[nod]) T[nod]=tata(T[nod]);
	return T[nod];
}

int main()
{
	int M,N,x,y,i,cod;

	freopen("disjoint.in","r",stdin);

	scanf("%d%d",&N,&M);

	freopen("disjoint.out","w",stdout);

	for(i=1;i<=N;i++) T[i]=i;

	for(i=1;i<=M;i++)
	{
		scanf("%d%d%d",&cod,&x,&y);

		x=tata(x);
		y=tata(y);

		if(cod==1) T[x]=y;
		else x==y ? printf("DA\n") : printf("NU\n");
	}

	return 0;
}