Cod sursa(job #276001)

Utilizator andr33aradu ioana andr33a Data 10 martie 2009 19:42:57
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include<fstream.h>  
ifstream f("disjoint.in");
ofstream g("disjoint.out");
const long Nmax=100100;
long n,m,t[Nmax];

long verif(long x)
{
	if(t[x]==x)
		return x;
	else
		verif(t[x]);
}
void init()
{
 for(long i=1;i<=n;i++)
	t[i]=i;
}

void citire()
{
 int z;
 long x,y;
 f>>n>>m;
 init();
 for(long i=0;i<m;i++)
 {
	f>>z>>x>>y;
	long rx=verif(x),ry=verif(y);
	if(z==1)
		t[rx]=ry;
	else
		if(rx==ry)
			g<<"DA"<<'\n';
		else
			g<<"NU"<<'\n';
 }
}  
  
int main()  
{  
 citire();  
 f.close();  
 g.close();  
 return 0;  
}