Cod sursa(job #2115809)

Utilizator Tyler_BMNIon Robert Gabriel Tyler_BMN Data 27 ianuarie 2018 10:17:44
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 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" : "NU");
		}
		else {
			parent[x] = y;
		}
	}
	return 0;
}