Cod sursa(job #3329841)

Utilizator Andreea1501013Andreea Andreea1501013 Data 16 decembrie 2025 10:44:57
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <bits/stdc++.h>

using namespace std;

int parent[100005],p;

int getParent(int nod)
{
    if(nod!= parent[nod])
    {
        getParent(parent[nod]);
        parent[nod]=p;
    }
    else
    {
        p=nod;
    }
    return p;
}
void cerinta1(int x, int y)
{
    parent[getParent(x)]= getParent(y);
}
string cerinta2(int x, int y)
{
    int parentX,parentY;
    parentX=getParent(x);
    parentY= getParent(y);
    return ((parentX == parentY) ? "DA\n" : "NU\n");
}
int main()
{
    ifstream cin("disjoint.in");
    ofstream cout("disjoint.out");
    int N,M,c,x,y;
    cin>>N>>M;
    for(int i=1;i<=N;i++)
    {
        parent[i]=i;
    }
    while(M--)
    {
        cin>>c>>x>>y;
        if(c==1)
        {
            cerinta1(x,y);
        }
        else
        {
            cout<<cerinta2(x,y);
        }
    }
    return 0;
}