Cod sursa(job #2285846)

Utilizator crion1999Anitei cristi crion1999 Data 19 noiembrie 2018 13:24:23
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fi("disjoint.in");
ofstream fo("disjoint.out");
int p[100005];

int Father(int nod)
{
    if(p[nod] == nod)
        return nod;
    else
        p[nod] = Father(p[nod]);
        return p[nod];

}

int t,n;
int main()
{
    fi>>n>>t;
    int op,a,b;
    for(int i = 1; i <= n; ++i)
        p[i] = i;
    while(t--)
    {
        fi>>op>>a>>b;
        if(op == 1)
        {
            p[Father(b)] = Father(a);
        }
        if(op == 2)
        {
            if(Father(a) == Father(b))
                fo<<"DA\n";
            else
                fo<<"NU\n";
        }
    }
}