Cod sursa(job #2304026)

Utilizator AndreiSorin26012001Cirpici Andrei Sorin AndreiSorin26012001 Data 17 decembrie 2018 14:00:19
Problema Paduri de multimi disjuncte Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <bits/stdc++.h>
#define DIM 10005
using namespace std;

ifstream in("disjoint.in");
ofstream out("disjoint.out");

int n, m, q, x, y;
int t[DIM], rx, ry;

int radacina( int nod )
{
    while( t[nod] > 0 )
        nod = t[nod];
    return nod;
}

int main()
{
    in>>n>>m;
    for( int i = 1; i <= m; i++ )
    {
        in>>q>>x>>y;

        rx = radacina(x);
        ry = radacina(y);

        if( q == 1 )
        {
            if( t[rx] < t[ry] )
            {
                t[rx] += t[ry];
                t[ry] = rx;
            }
            else
            {
                t[ry] += t[rx];
                t[rx] = ry;
            }
        }
        else
        {
            if( rx == ry )
                out<<"DA\n";
            else
                out<<"NU\n";
        }
    }

    return 0;
}