Cod sursa(job #2937933)

Utilizator DragosG12Ghinea Dragos DragosG12 Data 11 noiembrie 2022 14:04:55
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include<fstream>
using namespace std;

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

int gaseste(int x){
    if(multimi[x]==x)
        return x;
    return multimi[x]=gaseste(multimi[x]);
}

void uneste(int x, int y){
    multimi[gaseste(x)]=gaseste(y);
}

int main(){
    int n,m;
    fin>>n>>m;
    multimi=new int[n+1];
    for(int i=1;i<=n;i++)
        multimi[i]=i;
        
    int cod,x,y;
    while(fin>>cod>>x>>y){
        if(cod==1)
            uneste(x,y);
        else{
            fout<<(gaseste(x)==gaseste(y)?"DA\n":"NU\n");
        }
    }

    return 0;
}