Cod sursa(job #1626466)

Utilizator GeorgianBaditaBadita Marin-Georgian GeorgianBadita Data 3 martie 2016 09:12:14
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <cstdio>
#define NMAX 100005
using namespace std;

FILE *f = freopen("disjoint.in", "r", stdin);
FILE *g = freopen("disjoint.out", "w", stdout);

int N, M;
int Father[NMAX];

int find_(int x)
{
    while(Father[x])
        x = Father[x];
    return x;
}

int main()
{
    scanf("%d%d", &N, &M);
    int op, x, y;
    while(M)
    {
        M--;
        scanf("%d%d%d", &op, &x, &y);
        if(op == 2) {
            if(find_(x) == find_(y)) printf("DA\n");
            else printf("NU\n");
        }
        else {
            Father[find_(y)] = find_(x);
        }
    }
    return 0;
}