Cod sursa(job #2468366)

Utilizator ioncristescu7Ion Cristescu Marian ioncristescu7 Data 5 octombrie 2019 14:41:36
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>

using namespace std;
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int parents[100001];
int recv(int next)
{
    if(parents[next]==next)
        return next;
    int u=next;
    parents[next]=recv(parents[next]);;
    return parents[next];
}
int main()
{
    int n,m;
    cin >> n >> m;
    parents[0]=-1;
    for(int i=1; i<=n;i++)
        parents[i]=i;
    for(int i=0; i<m; i++)
    {
        int cod,x,y;
        cin >> cod >> x >> y;
        if(cod==1)
        {
            parents[recv(x)]=parents[recv(y)];
        }
        if(cod==2)
        {
            int nextx=recv(x);
            int nexty=recv(y);
            if(nextx==nexty)
                cout << "DA";
            else
                cout << "NU";
        }
    }
    return 0;
}