Cod sursa(job #2126590)

Utilizator AndreiBadescuBadescu Andrei-Octavian AndreiBadescu Data 9 februarie 2018 19:09:22
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>

using namespace std;

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

int n,m,i,c,x,y,p[100001];

void Union ( int x, int y )
{
    p[x] = y;
}

int Find ( int x )
{
    return x != p[x] ? p[x] = Find(p[x]) : x;
}

int main()
{
    fin >> n >> m;

    for ( i=1; i<=n; i++ )
        p[i] = i;

    for ( i=0; i<m; i++ )
    {
        fin >> c >> x >> y;

        if ( c == 1 )
            Union ( Find(x), Find(y) );
        else
            fout << ( Find(x) == Find(y) ? "DA\n" : "NU\n" );
    }

    return 0;
}