Cod sursa(job #2721670)

Utilizator KPP17Popescu Paul KPP17 Data 12 martie 2021 08:27:38
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.51 kb
#include <fstream>
#define mF "disjoint"
std::ifstream in(mF ".in");
std::ofstream out(mF ".out");
constexpr int N = 100000; int V[N];
int R(int e) {if (0 <= V[e]) return V[e] = R(V[e]); return e;}
#include <algorithm>
int main()
{
    int n, m; in >> n >> m; std::fill(V, V + n, -1); while (m--)
    {
        int o, a, b; in >> o >> a >> b; a = R(a-1); b = R(b-1);
        if (o == 1) {if (V[a] < V[b]) std::swap(a, b); V[b] += V[a]; V[a] = b;}
        else out << (a == b? "DA": "NU") << '\n';
    }
}