Cod sursa(job #3339836)

Utilizator minusllIvanus Mihai minusll Data 10 februarie 2026 14:42:28
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <cstring>
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

string nume = "disjoint";

ifstream in(nume + ".in");
ofstream out(nume + ".out");

const int NMAX = 100001;
int par[NMAX];

void unite(int x, int y) {
	if (par[x] != par[y]) par[x] = par[y];
}

void unionFind(int x, int y) {
	if (par[x] == par[y]) out << "DA\n";
	else out << "NU\n";
}

int main() {
	int n, m;
	in >> n >> m;
	for (int i = 1; i <= n; i++) par[i] = i;

	int a, b, c;
	while (m--) {
		in >> a >> b >> c;
		if (a == 1) unite(b, c);
		else unionFind(b, c);
	}
	return 0;
}