Cod sursa(job #3312780)

Utilizator sandrsSandra Paul sandrs Data 29 septembrie 2025 21:02:31
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.13 kb
/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <bits/stdc++.h>

using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int parent[100005];
int tell_parent(int a)
{
    if(a==parent[a])
    {
        return a;
    }
    return parent[a]=tell_parent(parent[a]);
}
void join(int a, int b)
{
    a=tell_parent(a);
    b=tell_parent(b);
    if(a!=b)
        parent[b]=parent[a];
}
int main()
{
    int n, m, c, a, b;
    fin >> n >> m;
    for(int i=1; i<=n; i++)
    {
        parent[i]=i;
    }
    for(int i=1; i<=m; i++)
    {
        fin >> c >> a >> b;
        if(c==1)
        {
            join(a, b);
        }
        else
        {
            if(tell_parent(a)==tell_parent(b))
                fout << "DA" << "\n";
            else
                fout << "NU" << "\n";
        }
    }

    return 0;
}