Cod sursa(job #406348)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 1 martie 2010 14:27:51
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <fstream.h>

#define N 100005

using namespace std;

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

int T[N],n,m;

int tata(int i)
{
    if (i==T[i])
        return i;
    T[i]=tata(T[i]);
}

int main ()
{
    int a,b,c;
    fin>>n>>m;
    for (int i=1;i<=n;i++)
        T[i]=i;
    while (m)
    {
        m--;
        fin>>a>>b>>c;
        if (a==2)
            fout<<((tata(b)!=tata(c))?("NU\n"):("DA\n"));
        else
            T[tata(c)]=tata(b);
    }
    return 0;
}