Cod sursa(job #3163075)

Utilizator Federica361Martinut Federica Federica361 Data 30 octombrie 2023 14:50:25
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;

ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
#define cin fin
#define cout fout

int n,m,i,r[100005],c,x,y;

int cauta(int x)
{
    if(x==r[x]) return x;
    r[x]=cauta(r[x]);
    return r[x];
}

int main()
{
    cin >> n>> m;
    for(i=1;i<=n;i++) r[i]=i;
    for(i=1;i<=m;i++)
    {
        cin>>c>>x>>y;
        if(c==2)
        {
            cauta(x);
            cauta(y);
            if(r[x]==r[y]) cout<<"DA"<<"\n";
            else cout<<"NU"<<"\n";
        }
        else
        {
            cauta(x);
            cauta(y);
            r[r[x]]=r[y];

        }
    }
    return 0;
}