Cod sursa(job #2935937)

Utilizator madalin1902Florea Madalin Alexandru madalin1902 Data 7 noiembrie 2022 18:26:14
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <bits/stdc++.h>
using namespace std;

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

int n, m, cod, x, y;

vector <int> parinte;

int radacina(int nod) {
    if (parinte[nod] == nod)
        return nod;

    return radacina(parinte[nod]);
}

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

    parinte.resize(n + 1);
    for (int i = 1; i <= n; ++i)
        parinte[i] = i;

    for (int i = 1; i <= m; ++i) {
        fin >> cod >> x >> y;

        if (cod == 1) {
            parinte[radacina(y)] = radacina(x);
        }
        else {
            if (radacina(x) == radacina(y))
                fout << "DA\n";
            else
                fout << "NU\n";
        }
    }

    fin.close();
    fout.close();
    return 0;
}