Cod sursa(job #1801708)

Utilizator ButmalaiDanButmalai Dan ButmalaiDan Data 9 noiembrie 2016 16:02:57
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include<fstream>
using namespace std;
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int p[100010],n,m,x,y,t;
int find(int nod)
{
	if (p[nod] == nod) return nod;
	int P = find(p[nod]);
	p[nod] = P;
	return P;
}
void unit(int a, int b)
{
	a = find(a);
	b = find(b);
	p[a] = b;
}
int main()
{
	cin >> n >> m;
	for(int i = 0; i <= n; i++) p[i] = i;
	while (m--)
	{
		cin >> t >> x >> y;
		if (t == 2) {if (find (x) == y) cout << "DA\n"; else cout << "NU\n";}
		if (t == 1) unit(x, y);
	}
}