Cod sursa(job #1776912)

Utilizator gabor.vlad13lil pump gabor.vlad13 Data 11 octombrie 2016 21:39:03
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <cstdio>
#include <cstring>


using namespace std;

int m, n;
int tata[100001];

void init()
{
    for (int i=1; i<=100000; i++)
        tata[i] = i;
}

int radacina(int x)
{
    while(tata[x]!=x)
        x = tata[x];
    return x;
}

void read()
{
    int operatie, x, y;
    scanf("%d %d\n", &n, &m);
    for (int i=1; i<=m; i++)
    {
        scanf("%d %d %d\n", &operatie, &x, &y);
        if (operatie == 1)
            tata[y] = radacina(x);
        else
            if (radacina(x) == radacina(y))
                printf("DA\n");
            else
                printf("NU\n");
    }


}

int main()
{
    freopen("disjoint.in", "r", stdin);
    freopen("disjoint.out", "w", stdout);
    init();
    read();
    return 0;
}