Cod sursa(job #3164231)

Utilizator elisa.ipateElisa Ipate elisa.ipate Data 2 noiembrie 2023 14:44:18
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>


using namespace std;
#define nmax 100003

int parinte[nmax];

int sef( int x ) {
    int aux;
    if( parinte[x] == x )
        return x;
    aux = sef( parinte[x] );
    parinte[x] = aux;
    return aux;

}

int main()
{
    int n, q, i, t, x, y, a, b;
    ifstream cin("disjoint.in");
    ofstream cout("disjoint.out");
    cin >> n >> q;

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

    for( i = 0; i < q; i++ ) {
        cin >> t >> x >> y;
        if( t == 1 ) {
            a = sef(x);
            b = sef(y);
            parinte[a] = b;
        }
        else {
            if( sef(x) == sef(y) )
                cout << "DA\n";
            else
                cout << "NU\n";

        }
    }
    return 0;
}