Cod sursa(job #1887564)

Utilizator Victor24Vasiesiu Victor Victor24 Data 21 februarie 2017 17:44:58
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
using namespace std;

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

int i, parinte [100005], n, m, x, a, b;

int pmd ( int x )
{
    if ( parinte [x] == x )
    {
        return x;
    }

    return parinte [x] = pmd ( parinte [x] );

}



int main ()
{
    f>>n>>m;

    for ( i = 1 ; i <= n; i++ )
    {
        parinte [i] = i;
    }

    for ( i=1; i<=m; i++)
    {
        f>>x>>a>>b;

        if ( x ==  1 )
        {
            a = pmd(a);
            b = pmd (b);
            parinte[a]=b;
        }

        else
        {
            if ( pmd (a) == pmd(b) )
            {
                g<<"DA"<<'\n';
            }
            else
            {
                g<<"NU"<<'\n';
            }
        }

        /*for ( int i1 = 1 ; i1 <= n; i1++ )
        /
            g<<parinte[i1]<<" ";
        }

        g<<'\n';
        */

    }

    return 0;
}