Cod sursa(job #3156337)

Utilizator deerMohanu Dominic deer Data 11 octombrie 2023 11:19:42
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;
int parent[100005];
ifstream fin ("disjoint.in");
ofstream fout ("disjoint.out");
int root (int x){
    if (parent[x]==x)
        return x;
    return parent[x] = root(parent[x]);
}
void unite (int x, int y){
    auto root1 = root(x);
    auto root2 = root(y);
    parent[root2] = root1;
}
void solve_query (){
    int tip, x, y;
    fin >> tip >> x >> y;
    if(tip == 1)
       unite(x, y);
    else
        fout << (root(x) == root(y)? "DA" : "NU") << "\n";
}
int main(){
    int n, q;
    fin >> n >> q;
    for (int i=1; i<=n; i++)
         parent[i] = i;
    while (q--)
        solve_query();
    return 0;
}