Cod sursa(job #3367664)

Utilizator cristinaboabesBoabes Cristina cristinaboabes Data 9 octombrie 2026 17:19:07
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>

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

int sef[100001];

int sef_suprem(int nod){
    if(sef[nod]==nod)
        return nod;
    return sef[nod]=sef_suprem(sef[nod]);
}

void unire(int x, int y){
    int sefx= sef_suprem(x);
    int sefy = sef_suprem(y);
    sef[sefx]=sefy;
}

int main()
{
    int n,x,y,c,m,i;
    fin>>n>>m;
    for(i=1;i<=n;i++)
        sef[i]=i;
    for(i=1;i<=m;i++){
        fin>>c>>x>>y;
        if(c==1){
            unire(x,y);
        }
        else{
            if(sef_suprem(x)==sef_suprem(y))
                fout<<"DA"<<'\n';
            else
                fout<<"NU"<<'\n';
        }
    }
    return 0;
}