Cod sursa(job #2115793)

Utilizator cristii2000cristiiPanaite Cristian cristii2000cristii Data 27 ianuarie 2018 10:13:36
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("../disjoint.in");
ofstream out("../disjoint.out");

const int Max = 100005;

int n, m;
int tati[Max];

int searchFather(int w)
{
	if(tati[w] == w)
	{
		return w;
	}
	int x = searchFather(tati[w]);
	tati[w] = x;
	return x;
}

void citire()
{
	in >> n >> m;
	for(int i = 0; i <= n; i++)
	{
		tati[i] = i;
	}
	for(int i = 0; i < m; i++)
	{
		int cod, x, y;
		in >> cod >> x >> y;
		int Fx = searchFather(x);
		int Fy = searchFather(y);
		if(cod == 1)
		{
			tati[Fx] = Fy;
			continue;
		}
		else
		{
			if(Fx == Fy)
				out << "DA\n";
			else
				out << "NU\n";
		}
	}
}

int main()
{
	citire();
	return 0;
}