Cod sursa(job #655690)

Utilizator valentina506Moraru Valentina valentina506 Data 3 ianuarie 2012 12:51:18
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<fstream>
using namespace std;
int n,m,i,j,c[100001],x,y,t;

void uneste(int i,int j)
{
	int r1,r2;
	
	r1=c[j];
	while(c[j]!=j)
	{
		r2=c[j];
		c[j]=r1;
		j=r2;
	}
	
	c[j]=i;
	
}
		
int main()
{
	freopen("disjoint.in","r",stdin);
	freopen("disjoint.out","w",stdout);
	
	scanf("%d%d",&n,&m);

	for(i=1;i<=n;++i)
		c[i]=i;
	
	while(m)
	{
		--m;
		scanf("%d%d%d",&t,&x,&y);
		
		if(t==2)
		{
			if(c[x]==c[y])
				printf("DA\n");
			else
			printf("NU\n");
		}
		
		if(t==1)
			uneste(x,y);
		
	//	for(i=1;i<=n;++i)
		//	printf("%d ",c[i]);
		//printf("\n");
		
	}
	
	
	
	return 0;
}