Cod sursa(job #2939342)

Utilizator IanisBelu Ianis Ianis Data 13 noiembrie 2022 15:54:35
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
#include <algorithm>
#include <string>
#include <bitset>
#include <stack>
#include <queue>
#include <deque>

using namespace std;

#ifdef LOCAL
ifstream fin("input.txt");
#define fout cout
#else
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
#endif

const int NMAX = 1e5+5;

int n, m, t, a, b;
int r[NMAX];

int rep(int x) {
	if (r[x] == x)
		return x;
	r[x] = rep(r[x]);
	return r[x];
}

int32_t main() {
	fin >> n >> m;
	for (int i = 1; i <= n; i++)
		r[i] = i;
	while (m--) {
		fin >> t >> a >> b;
		if (t == 1)
			r[a] = r[b];
		else
			fout << (rep(a) == rep(b) ? "DA\n" : "NU\n");
	}
	return 0;
}