Cod sursa(job #2694111)

Utilizator antonioganea3Antonio Ganea antonioganea3 Data 8 ianuarie 2021 00:46:57
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
using namespace std;

#define NMAX 100005

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

int n, m;
int P[NMAX];

int Find( int nod )
{
    if( P[nod] == nod )
        return nod;
    else
        Find( P[nod] );
}

int main()
{
    fin >> n >> m;
    for( int i = 1; i <= n; i++ )
        P[i] = i;

    int c, x, y;
    for( int i = 1; i <= m; i++ )
    {
        fin >> c >> x >> y;
        P[x] = Find(x);
        P[y] = Find(y);
        if( c == 1 )
            P[ P[x] ] = P[y];
        else
        {
            if( Find(x) == Find(y) )
                fout << "DA";
            else
                fout << "NU";
            fout << '\n';
        }
    }

    return 0;
}