Cod sursa(job #2845979)

Utilizator mitumitucristinaMitu Cristina mitumitucristina Data 8 februarie 2022 16:44:46
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include<fstream>
using namespace std;
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int sef[100001];
int sefsuprem(int nod){
    if(sef[nod]==nod)
        return nod;
    else
        return sef[nod]=sefsuprem(sef[nod]);
}
void unire(int x,int y){
    int sef1=sefsuprem(x);
    int sef2=sefsuprem(y);
    sef[sef1]=sef2;
}
int main(){
int n,m,i,c,x,y;
cin>>n>>m;
for(i=1;i<=n;i++)
    sef[i]=i;
for(i=1;i<=m;i++){
    cin>>c>>x>>y;
    if(c==1)
        unire(x,y);
    else{
        if(sefsuprem(x)==sefsuprem(y))
            cout<<"DA"<<'\n';
        else
            cout<<"NU"<<'\n';
    }
}
return 0;
}