Cod sursa(job #1891661)

Utilizator catu_bogdan_99Catu Bogdan catu_bogdan_99 Data 24 februarie 2017 11:12:00
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <cstdio>
using namespace std;

#define NMAX 100001
int P[ NMAX ];

int Root ( int x ) {
    while ( x != P[ x ] )
        x = P[ x ];
    return x;
}

int main () {


    freopen( "disjoint.in", "r", stdin );
    freopen( "disjoint.out", "w", stdout );
    int n, m, i, j, x, y, k,rx, ry;

    scanf( "%d%d",&n,&m );
    for ( i = 1; i <= n; ++i ) P[ i ] = i;

    while ( m-- ) {
        scanf( "%d%d%d",&k,&x,&y );
        rx = Root( x );
        ry = Root( y );
        if ( k == 1 ) P[ x ] = ry;
        else {
                if ( rx == ry )printf( "DA\n" );
                else printf( "NU\n" );
        }
    }


    return 0;
}