Cod sursa(job #2945446)

Utilizator PepiNedelcu Radu Pepi Data 23 noiembrie 2022 19:35:40
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <iostream>
#include <vector>


using namespace std;

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

vector <int> parents;

int getParent(int n){
    while(parents[n] != 0){
        n = parents[n];
    }
    return n;
}


int main() {

    int n, m, type,x,y;
    fin>>n>>m;

    for(int i=0;i<=n;i++){
        parents.push_back(0);
    }

    while(m--){
        fin>>type>>x>>y;

        if(type == 1){
//            cout<<getParent(x)<< " "<< getParent(y)<<endl;
            if(getParent(x)!= getParent(y)) parents[getParent(x)] = getParent(y);

        }else{
            if(getParent(x) == getParent(y)){
                fout<<"DA\n";
            }else{
                fout<<"NU\n";
            }
        }

    }





    return 0;
}