Cod sursa(job #1413314)

Utilizator rares96cheseliRares Cheseli rares96cheseli Data 1 aprilie 2015 19:59:39
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");

int N, M, dad[100005], tip, x, y;

int grupa(int nod)
{
    if (dad[nod]==nod) return nod;
    return grupa(dad[nod]);
}

void unite(int x, int y)
{
    dad[grupa(x)]=grupa(y);
}

int main()
{
    f>>N>>M;
    for (int i=1; i<=N; ++i)
        dad[i]=i;
    while (M--)
    {
        f>>tip>>x>>y;
        if (tip==1) unite(x, y);
            else
            {
                if (grupa(x)==grupa(y)) g<<"DA\n";
                    else g<<"NU\n";
            }
    }
    return 0;
}