Cod sursa(job #657890)

Utilizator lavinia_ilincaIlinca Lavinia lavinia_ilinca Data 7 ianuarie 2012 16:14:44
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include<stdio.h>

int n,m,i,x,y,t[100005],cod,r1,r2;

int tata(int x)
{
	while (x!=t[x]) x=t[x];
	return x;
}


int main()
{
	freopen("disjoint.in","r",stdin);
	freopen("disjoint.out","w",stdout);
	scanf("%d %d",&n,&m);
	for (i=1;i<=n;i++) t[i]=i;
	for (i=1;i<=m;i++)
      {
		scanf("%d %d %d",&cod,&x,&y);
		r1=tata(x);
		r2=tata(y);
		if (cod==1) t[r1]=r2;
		else if (cod==2) {
			if (r1==r2) printf("DA\n");
			else printf("NU\n");
		}
	}
	return 0;
}