Cod sursa(job #712644)

Utilizator DianaDDiana Dr. DianaD Data 13 martie 2012 18:07:49
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>

using namespace std;

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

int N,M,t[100020],x,y,cod,rx,ry;

int radacina (int x)
{
    if (t[x] == 0) return x;
    int r = radacina(t[x]);
    t[x] = r;
    return r;
}

int main()
{
    in>>N>>M;
    for (int i=1 ; i<=M ; i++)
    {
        in>>cod>>x>>y;
        if (cod==1)
        {
            rx = radacina(x);
            ry = radacina(y);
            t[radacina(x)] = y;
        }
        if (cod==2)
        {
            rx = radacina(x);
            ry = radacina(y);
            if (rx == ry)   out<<"DA"<<"\n";
            else out<<"NU"<<"\n";
        }
    }
    return 0;
}