Cod sursa(job #820284)

Utilizator cremarencodianaCremarenco Diana cremarencodiana Data 20 noiembrie 2012 17:40:18
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
# include <stdio.h>
int n,m,t[100010],x,y,i,op;
int radx(int nod)
{
	if (t[nod]!=nod)
		t[nod]=radx(t[nod]);
	return t[nod];
}
int main()
{
	freopen("disjoint.in","r",stdin);
	freopen("disjoint.out","w",stdout);
	scanf("%d %d\n",&n,&m);
	for (i=1; i<=n; i++)
		t[i]=i;
	for (i=1; i<=m; i++)
	{
		scanf("%d %d %d\n",&op,&x,&y);
		if (op==1)
		{
			if (radx(x)!=radx(y))
			{
				t[t[y]]=t[x];
			}
		}
		else
		{ 
			int q=radx(x);
			int r=radx(y);
			if (t[x]==t[y]) printf("DA\n");
			else printf("NU\n");
		}
	}
	return 0;
}