Cod sursa(job #3342717)

Utilizator marctudor_ghenceaMarc-Tudor Ghencea marctudor_ghencea Data 25 februarie 2026 14:04:50
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>

using namespace std;

ifstream cin("disjoint.in");
ofstream cout("disjoint.out");

int parent[100000];

int sef(int a) {
    if (a == parent[a]){
        return a;
    } else {
        parent[a] = sef(parent[a]);
    }
}

void join(int a, int b) {
    int pa = sef(a);
    int pb = sef(b);
    parent[pb] = pa;
}

int main() {
    int n, m;
    cin >> n >> m;
    for (int i = 1; i <= n; i++) {
        parent[i] = i;
    }
    for (int i = 1; i <= m; i++) {
        int t, a, b;
        cin >> t >> a >> b;
        if (t == 1) {
            join(a, b);
        } else {
            if (sef(a) == sef(b)) {
                cout << "DA\n";
            } else {
                cout << "NU\n";
            }
        }
    }
    return 0;
}