Cod sursa(job #1011941)

Utilizator alex.glontGlontaru Alexandru alex.glont Data 17 octombrie 2013 19:40:04
Problema Paduri de multimi disjuncte Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<fstream>

using namespace std;

fstream in ( "disjoint.in" , ios::in ),
        out( "disjoint.out", ios::out);

int t[100000], n, m;

int radacina( int x ){

    if( t[x] == 0 )
        return x;

    t[x] = radacina( t[x] );
    return t[x];

}

int main(){

    int a , b , ra , rb ,  x;

    in >> n >> m;

    for(int i=0; i<m; i++){

        in >> x >> a >> b;

        if( x==1 ){

            ra = radacina(a);
            rb = radacina(b);

            if( ra!=rb ){
                t[rb] = ra;

            }

        }
        else{

            if(radacina(a)==radacina(b))
                out<<"DA\n";
            else
                out<<"NU\n";

        }

    }

    return 0;
}