Cod sursa(job #2402567)

Utilizator WladDalwMvladutu cristian vlad WladDalwM Data 10 aprilie 2019 20:09:46
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>

using namespace std;
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int v[100002];
int  tata(int a)
{
    if(v[a] == a)
    return a;
    v[a] = tata(v[a]);
    return v[a];

}
int main()
{
    int n , m , i ,f , a , b;
    cin >> n;
    for(i = 1; i <= n; i++)
    v[i] = i;
    cin >> m;
    for(i = 1; i <= m; i++)
    {
        cin >> f >> a >> b;
        if(f == 1)
        v[tata(b)] = a;
        else
        {
            if(tata(a) == tata(b))
            cout << "DA" << '\n';
            else
            cout << "NU" << '\n';
        }
    }
    return 0;
}