Cod sursa(job #3193845)

Utilizator TheEpicWipedCreaVlad Chirita Alexandru TheEpicWipedCrea Data 15 ianuarie 2024 20:57:23
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in  ("disjoint.in");
ofstream out("disjoint.out");

#define maxN 100000
int father[maxN+1];

void unioni(int f1,int f2){
    father[f2]=f1;
}

int find(int nod) {
    while(father[nod]!=nod){
        nod=father[nod];
    }
    return father[nod];
}

int main(){
    int n,q;
    in>>n>>q;
    for(int i=1;i<=n;i++){
        father[i]=i;
    }
    for(int z=1;z<=q;z++){
        int cod,x,y;
        in>>cod>>x>>y;
        if(cod==1){
            unioni(find(x),find(y));
        }
        else{
            if(find(x)==find(y)){
                out<<"DA"<<'\n';
            }
            else{
                out<<"NU"<<'\n';
            }
        }
    }
}