Cod sursa(job #1996510)

Utilizator VladGhetinaVlad Ghetina VladGhetina Data 1 iulie 2017 18:30:33
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <cstdio>
#include <cstring>

using namespace std;

#define IN "disjoint.in"
#define OUT"disjoint.out"

int n , m , x , y , caz;
int T[1000*103];

int Find_Root( int a )
{
    while ( T[a]!= -1 )
        a = T[a];

    return a;
}

void Read_Solve()
{
    int i , rx , ry;

    scanf ( "%d%d" , &n , &m );

    for ( i = 1 ; i <= m ; i ++ ){
         scanf ( "%d%d%d" , &caz , &x , &y );
            rx = Find_Root(x) , ry = Find_Root(y);

         if ( caz == 1 )
            T[ry] = rx;
            else if ( rx == ry )
                printf ("DA\n");
                else printf ("NU\n");


    }
}
int main()
{
   freopen(IN,"r",stdin);
   freopen(OUT,"w",stdout);

   memset(T,-1,sizeof(T));

   Read_Solve();
}