Cod sursa(job #3271675)

Utilizator mihaihvhTuburlui Mihai mihaihvh Data 26 ianuarie 2025 21:06:15
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
#include <vector>
#include <climits>

using namespace std;

fstream cin("disjoint.in");
ofstream cout("disjoint.out");

int t[100001];
int n, m, p;

int rad(int nod) {
    if (t[nod] == nod) return nod;
    return rad(t[nod]);
}

void prn(int a, int b) {
    if (t[a] > t[b])
        t[a] = b;
    else
        t[b] = a;
}

int main() {
    cin >> n >> m;

    for (int i = 1; i <= n; ++i)
        t[i] = i;

    for (int i = 1; i <= m; ++i) {
        int a, b;
        cin >> p >> a >> b;
        if (p == 1) prn(rad(a), rad(b));
        else cout << (rad(a) == rad(b) ? "DA" : "NU") << ' ';
    }

    return 0;
}