Cod sursa(job #2935630)

Utilizator urluconceptualCiocan Alexandra-Diana urluconceptual Data 7 noiembrie 2022 10:34:11
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <vector>

using namespace std;

vector<int> tata;
int n, m, cod, x, y;

void radacina() {
    while (tata[x] != x || tata[y] != y) {
        if (tata[x] != x) x = tata[x];
        if (tata[y] != y) y = tata[y];
    }
}

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

    fin >> n >> m;
    tata.resize(n+1);
    for (int i = 1; i <= n; i++)
        tata[i] = i;

    while (m > 0) {
        fin >> cod >> x >> y;
        radacina();
        if (cod == 1)
            tata[y] = x;
        else
            if (x == y)
                fout << "DA\n";
            else
                fout << "NU\n";
        m--;
    }

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