Cod sursa(job #2782323)

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

using namespace std;

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

string raspuns[] = {"NU\n", "DA\n"};

int tata[100005];
int n, q, cmd, x, y;
int rx, ry;

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

void unire(int r1, int r2){
    tata[r2] = r1;
}

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

    for(int query=1; query <= q; query++){
        fin>>cmd>>x>>y;
        rx=rad(x);
        ry=rad(y);

        if(cmd == 1)
            unire(rx, ry);
        else
            fout<<raspuns[(rx == ry)];
    }

    return 0;
}