Cod sursa(job #1798969)

Utilizator vladbatalanBatalan Vlad vladbatalan Data 5 noiembrie 2016 17:09:10
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>

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

int n,m,v[100010],op,x,y;


void grupeaza( int a, int b )
{
    int auxa=a, auxb=b;
    while( v[a]!=0 )
        a=v[a];
    while( v[b]!=0 )
        b=v[b];
    v[a]=b;
}
void verifica( int a, int b )
{
    int auxa=a, auxb=b;
    while( v[a]!=0 )
        a=v[a];
    while( v[b]!=0 )
        b=v[b];
    if( a==b )fout<<"DA\n";
    else {
            fout<<"NU\n";
    }
}
int main()
{
    fin>>n>>m;
    while( m-- )
    {
        fin>>op>>x>>y;
        switch ( op )
        {
        case 1:
            grupeaza( x,y );
            break;
        case 2:
            verifica( x,y );
            break;
        }
    }



    return 0;
}