Cod sursa(job #2573126)

Utilizator Turturica_DorinTurturica Dorin Turturica_Dorin Data 5 martie 2020 15:56:21
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>

using namespace std;
ifstream fin ("disjoint.in");
ofstream fout ("disjoint.out");

int N, M, i, cer, x, y, t1, t2, t[ 100005 ];

void cautare( int nod, int &tp )
{
    if ( t[ nod ] != 0 )
    {
        cautare( t[ nod ], tp );
        t[ nod ] = tp;
    }
    else
    {
        tp = nod;
    }
}

int main()
{
    fin >> N >> M;
    for ( i = 1; i <= M; i++ )
    {
        fin>> cer >> x >> y;
        cautare( x, t1 );
        cautare( y, t2 );
        if ( cer == 1 )
        {
            t[ t2 ] = t1;
        }
        else if ( cer == 2 )
        {
            if ( t1 == t2 )
                fout<< "DA" << '\n';
            else
                fout<< "NU" << '\n';
        }
    }
}