Cod sursa(job #2126580)

Utilizator AndreiBadescuBadescu Andrei-Octavian AndreiBadescu Data 9 februarie 2018 19:04:37
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>

using namespace std;

ifstream fin ("disjoint.in");
ofstream fout ("disjoint.out");

int n,m,i,c,x,y,p[100001];

void Union ( int x, int y )
{
	p[x] = y;
}

int Find ( int x )
{
	if ( x != p[x] )
		p[x] = Find(p[x]);
	return p[x];
}

int main()
{
	fin >> n >> m;

	for ( i=1; i<=n; ++i )
		p[i] = i;

	for ( i=0; i<m; ++i )
	{
		fin >> c >> x >> y;

		if ( c == 1 )
			Union (x,y);
		else
		{
			if ( Find(x) == Find(y) )
				fout << "DA\n";
			else
				fout << "NU\n";
		}
	}

	return 0;
}