Cod sursa(job #1378507)

Utilizator PetrutiuPaulPetrutiu Paul Gabriel PetrutiuPaul Data 6 martie 2015 12:40:44
Problema Paduri de multimi disjuncte Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int g[10000];

int grup(int i)
{
    if(g[i]==i)
        return i;
    g[i]=grup(g[i]);
    return g[i];
}

void reuniune(int i, int j)
{
    g[grup(i)]=grup(j);
}

int main()
{
    int n,m,x,y,s;

    fin>>n>>m;

    for(int i=1;i<=n;i++)g[i]=i;

    for(int i=1;i<=m;i++)
    {
        fin>>s>>x>>y;

        if(s==1)
            reuniune(x,y);

        if(s==2)
            if(grup(x)!=grup(y))
                fout<<"NU\n";
            else fout<<"DA\n";
    }

}