Cod sursa(job #433828)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 4 aprilie 2010 14:49:41
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <stdio.h>
#define IN "disjoint.in"
#define OUT "disjoint.out"
#define L 100005

using namespace std;

int T[L];
int n, m, a, b, c;

int Tata(int a)
{
    if (a==T[a])
        return a;
    return T[a]=Tata(T[a]);
}

int main ()
{
    freopen (IN ,"r", stdin);
    freopen (OUT , "w", stdout);
    scanf ("%d %d",&n, &m);
    for (int i=1;i<=n;i++)
        T[i]=i;
    while (m--)
    {
        scanf ("%d %d %d", &a, &b, &c);
        if (a==1)
            T[Tata(b)]=c;
        else
            printf("%s\n", Tata(b)==Tata(c)?"DA":"NU");
    }
    return 0;
}