Cod sursa(job #3164223)

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


using namespace std;
#define nmax 100000

int parinte[nmax];

int compresie( int x ) {
    if( parinte[x] == x )
        return x;
    parinte[x] = compresie( parinte[x] );
    return parinte[x];
}

int main()
{
    int n, q, i, t, x, y;
    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 )
            parinte[x] = parinte[y];
        else {
            if( compresie(x) == compresie(y) )
                cout << "DA\n";
            else
                cout << "NU\n";

        }
    }
    return 0;
}