Cod sursa(job #3360202)

Utilizator RegeleOu3433Calin V. Dragos Andrei RegeleOu3433 Data 10 iulie 2026 13:52:25
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <bits/stdc++.h>

using namespace std;

const int MAXN = 1e5;
int tat[MAXN + 1];
int radRec ( int x ) {
    if ( !tat[x] )
        return x;
    return tat[x] = radRec ( tat[x] );
}
void join ( int x , int y ) { tat[radRec ( x )] = radRec ( y ); }
string query ( int x , int y ) { return radRec ( x ) == radRec ( y ) ? "DA\n" : "NU\n"; }
int main () {
    ifstream fin ( "disjoint.in" );
    ofstream fout ( "disjoint.out" );
    int n , m , i , cod , x , y;

    fin >> n >> m;
    for ( i = 0 ; i < m ; i++ ) {
        fin >> cod >> x >> y;
        if ( cod == 1 )
            join ( x , y );
        else
            fout << query ( x , y );
    }
    return 0;
}