Cod sursa(job #1757111)

Utilizator din99danyMatei Daniel din99dany Data 14 septembrie 2016 15:45:26
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<stdio.h>
using namespace std;
#define NMAX 100005

int v[ NMAX ],N,M,i,t,y,x;

int tt( int x ){
    while( x != v[ x ] ) x = v[ x ];
    return x;
}

int main()
{
    freopen("disjoint.in","r",stdin);
    freopen("disjoint.out","w",stdout);
    scanf("%d%d",&N,&M);
    for( i = 1; i <= N; i++ ) v[ i ] = i;
    for( i = 1; i <= M;i++ ){
        scanf("%d%d%d",&t,&x,&y);
        x = tt( x );    y = tt( y );
        if( t == 1 ) v[ x ]=y;
        else if( y == x ) printf("DA\n");
        else printf("NU\n");
    }
}