Cod sursa(job #903001)

Utilizator radu_bucurRadu Bucur radu_bucur Data 1 martie 2013 17:58:56
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int a[100001],e,f,i,l,x,y,h,n,m,b[100001];
int tata(int c)
{
	int j,aux;
	if(c==a[c]) j=c;
	else j=tata(a[c]);
	while (c!=j)
	{
		aux=a[c];
		a[c]=j;
		c=aux;
	}
	return j;
}
int main()
{
	in>>n>>m;
	for(i=1;i<=n;i++) 
	{
		a[i]=i;
		//b[i]=1;
	}
	for(l=1;l<=m;l++)
	{
		in>>h>>x>>y;
		e=tata(x);
		f=tata(y);
		if(h==1&&e!=f) a[f]=e;
		if(h==2)
		{
			if(e==f) out<<"DA\n";
			else out<<"NU\n";
		}
	}
	return 0;
}