Cod sursa(job #2526772)

Utilizator CosminMorarMorar Cosmin Andrei CosminMorar Data 19 ianuarie 2020 10:44:44
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n, m, cod, a, b;
vector<int> mul[100010];
int coresp[100010];

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

    for (int i = 1; i <= n; i++) {
        coresp[i] = i;
        mul[i].push_back(i);
    }

    for (int h = 1; h <= m; h++) {
        fin >> cod >> a >> b;

        if (cod == 1) {
            int mulA = coresp[a];
            int mulB = coresp[b];

            for (auto nr : mul[mulB]) {
                coresp[nr] = mulA;
                mul[mulA].push_back(nr);
            }
        } else {
            if (coresp[a] == coresp[b])
                fout << "DA\n";
            else
                fout << "NU\n";
        }
    }
    return 0;
}