Cod sursa(job #2377926)

Utilizator petrea1551Petrea Calin petrea1551 Data 11 martie 2019 14:20:12
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.58 kb
#include <bits/stdc++.h>
using namespace std;

int p[100001], n, m;

int find(int x)
{
	if (p[x] == x)
		return x;
	else
		return p[x] = find(p[x]);
}

void unite(int x, int y)
{
	int a = find(x);
	int b = find(y);
	p[b] = a;
}

int main()
{
	ifstream cin("disjoint.in");
	ofstream cout("disjoint.out");
	cin >> n >> m;
	for (int i = 1; i <= n; i++)
		p[i] = i;
	for (int i = 1; i <= m; i++)
	{
		int c, x, y;
		cin >> c >> x >> y;
		if (c == 1)
			p[y] = x;
		else if(find(x) == find(y))
			cout << "DA\n";
		else
			cout << "NU\n";
	}
	return 0;
}