Cod sursa(job #1989011)

Utilizator Emy1337Micu Emerson Emy1337 Data 5 iunie 2017 15:58:29
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>
#define maxN 100010
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");

int multime[maxN];

int find(int x)
{
    if(multime[x] == x)
        return x;

    return find(multime[x]);
}

void reunion(int x, int y)
{
    multime[y] = x;
}

int main()
{

    int n, m;
    fin >> n >> m;
    for(int i=1; i<=n; i++)
        multime[i] = i;

    while(m--)
    {
        int t, x, y;
        fin >> t >> x >> y;
        if(t==1)
            reunion(x,y);
        else
            find(x) == find(y) ? fout << "DA\n" : fout << "NU\n";
    }


    return 0;
}