Cod sursa(job #3283867)

Utilizator tryharderulbrebenel mihnea stefan tryharderul Data 10 martie 2025 16:55:25
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in("disjoint.in");
ofstream out("disjoint.out");

const int NMAX = 1e6 + 3;

int n, q;
int t[NMAX];

int find(int node) {
    if(t[node] == node) { return node; }
    return (t[node] = find(t[node]));
}

void unite(int x, int y) {
    t[find(x)] = find(y);
}

int main() {

    in >> n >> q;

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

    for(int i = 1; i <= q; i++) {
        int type, x, y;
        in >> type >> x >> y;
        if(type == 1) {
            unite(x, y);
        } else {
            out << (find(x) == find(y) ? "DA" : "NU") << '\n';
        }
    }

    return 0;
}