Cod sursa(job #2115823)

Utilizator Tyler_BMNIon Robert Gabriel Tyler_BMN Data 27 ianuarie 2018 10:22:22
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>

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


const int MAXNM = 100001;

int parent[MAXNM];
int n, m;

int root(int x) {
	if (parent[x] == 0)
		return x;
	int p = root(parent[x]);
	parent[x] = p;
	return p;
}

int main() {
	fin >> n >> m;
	int p, x, y;
	for (int i = 0; i < m; i++) {
		fin >> p >> x >> y;
		if (p == 2) {
			int parent1 = root(x), parent2 = root(y);
			fout << ((parent1 == parent2) ? "DA\n" : "NU\n");
		}
		else {
			parent[root(x)] = root(y);
		}
	}

	return 0;
}