Cod sursa(job #911852)

Utilizator iulianpopescu13Iulian Popescu iulianpopescu13 Data 11 martie 2013 21:48:40
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
# include <fstream>
# define dim 100001
using namespace std;
int tata[ dim ], n, m;
int afla_tata( int x )
{
	while( tata[ x ] != x )
		x = tata[ x ];
	return x;
}
inline void citire()
{
	ifstream fin("disjoint.in");
	ofstream fout("disjoint.out");
	fin >> n >> m;
	for(int i=1; i<=n; ++i )
		tata[ i ] = i;
	for( ; m; --m )
	{
		int tip, x, y;
		fin >> tip >> x >> y;
		if( tip == 1 )
			tata[ afla_tata( y ) ] = afla_tata( x );
		else
			if( tip == 2 && afla_tata( x ) == afla_tata( y ) )
				fout<<"DA\n";
			else
				fout<<"NU\n";
	}
}
int main()
{
	citire();
}