Cod sursa(job #2173571)

Utilizator chioreanraulChiorean Raul chioreanraul Data 15 martie 2018 22:50:46
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>

using namespace std;
int n,m,x,y,i,DSU[100010];

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

int Union( int x )
{
    if( x == DSU[ x ] )
        return x;
    int aux = Union( DSU[ x ] );
    DSU[ x ] = aux;
    return aux;
}
int main()
{
    fin>>n>>m;
    for( i = 1; i <= n; i++ )
    {
        DSU[ i ] = i;
    }
    for( i = 1; i <= m; i++ )
    {
        fin>>x;
        if( x == 1 )
        {
            fin>>x>>y;
            x = Union( x );
            y = Union( y );
            DSU[ x ] = y;
        }
        else
        {
            fin>>x>>y;
            if( Union( x ) == Union ( y ) )
                fout<<"DA\n";
            else
                fout<<"NU\n";
        }
    }
    return 0;
}