Cod sursa(job #2675123)

Utilizator cezardoroDorobat Cezar cezardoro Data 21 noiembrie 2020 10:19:22
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;

int tata[100005], n, m;

ifstream fin ("disjoint.in");
ofstream fout ("disjoint.out");

int Find (int x)
{
    int rad = x, y;

    while (tata[rad] != 0)
        rad = tata[rad];


    return rad;
}

void Union (int x, int y)
{
    tata[x] = y;
}

void Read ()
{
    int x, y, opt;
    fin >> n >> m;

    for (int i = 1; i <= m; i++)
    {
        fin >> opt >> x >> y;
        x = Find (x);
        y = Find (y);
        if (opt == 1)
            Union (x, y);
        else
        {
            if (x == y)
                fout << "DA\n";
            else
                fout << "NU\n";
        }
    }
}

int main()
{
    Read();
    return 0;
}