Cod sursa(job #1371190)

Utilizator Juve45UAIC Alexandru Ionita Juve45 Data 3 martie 2015 19:49:11
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <cstdio>
#define DMAX 100005
using namespace std;

int n, rt[DMAX], m;
int x, a, b;
int root(int k)
{
    if(k!=rt[k])
        rt[k]=root(rt[k]);
        return rt[k];
}

int main()
{
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);

cin>>n>>m;
for(int i=1;i<=n;i++)
rt[i]=i;
    for(int i=1;i<=m;i++)
    {scanf("%i %i %i", &x, &a, &b);
        if(x==1)
        {
            rt[root(a)]=root(b);
        }
        else{
            if(root(a)==root(b))
                printf("DA\n");
            else printf("NU\n");
        }
    }


    return 0;
}