Cod sursa(job #2966101)

Utilizator ugandanknuckles123stefan voicu ugandanknuckles123 Data 16 ianuarie 2023 19:10:45
Problema Paduri de multimi disjuncte Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
//disjoint
#include <fstream>
#include <vector>

using namespace std;

vector<int> parent;

int find(int x) {
    if (parent[x] != x)
        parent[x] = find(parent[x]);
    return parent[x];
}

int main() {
    ifstream in("disjoint.in");
    ofstream out("disjoint.out");
    int n, m;
    in >> n >> m;
    parent.resize(n + 1);

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

    while (m--) {
        int op, x, y;
        in >> op >> x >> y;

        if (op == 1) {
            int u = find(x), v = find(y);
            if (u != v)
                parent[u] = v;
        } else {
            if (find(x) == find(y))
                out << "DA" << endl;
            else
                out << "NU" << endl;
        }
    }

    return 0;
}