Cod sursa(job #2783850)

Utilizator BlueLuca888Girbovan Robert Luca BlueLuca888 Data 15 octombrie 2021 10:36:25
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <bits/stdc++.h>

using namespace std;

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

string ans[] = {"NU", "DA"};
int tata[100005];
int n, m, op, x, y;

int rad(int nod){
    while(tata[nod] != 0)
        nod=tata[nod];
    return nod;
}

void unesc(int x, int y){
    int rx = rad(x);
    int ry = rad(y);

    if(rx != ry)
        tata[ry]=rx;
}

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

    for(int i=1; i<=m; i++){
        fin>>op>>x>>y;
        if(op == 1)
            unesc(x, y);
        else
            fout<<ans[(rad(x) == rad(y))]<<"\n";
    }
    return 0;
}