Cod sursa(job #1445613)

Utilizator Ioan_SalcianuIoan Salcianu Ioan_Salcianu Data 30 mai 2015 15:52:53
Problema Paduri de multimi disjuncte Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int *v;

int radacina(int x) {
if (x!=v[x]) return radacina(v[x]);
else return x;
}

int main() {
int n, x, y, z, i, m;
in >> n;
in >> m;
v=new int[m+1];
for (i=1; i<=m; i++)
    v[i]=i;
for (i=1; i<=m; i++) {
    in >> x >> y >> z;
    if (x==1) v[radacina(z)]=radacina(y);
    else if (x==2) {
        if (radacina(z)==radacina(y)) out << "DA" << endl;
        else out << "NU" << endl;
    }
}
return 0;
}