Cod sursa(job #2570524)

Utilizator BAlexandruBorgovan Alexandru BAlexandru Data 4 martie 2020 17:23:28
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream f("disjoint.in");
ofstream g("disjoint.out");

int n, M, i;
int tip, x, y;
int m[100001];
vector < int > v[100001];

int main()
{
    f >> n >> M;
    for (i=1; i<=n; i++)
    {
        m[i] = i;
        v[i].push_back(i);
    }

    while (M--)
    {
        f >> tip >> x >> y;
        if (tip == 1)
        {
            int aux = m[y];
            for (i=0; i<v[aux].size(); i++)
            {
                m[v[aux][i]] = m[x];
                v[m[x]].push_back(v[aux][i]);
            }
            //v[aux].clear;
        }
        else
        {
            if (m[x] == m[y])
                g << "DA\n";
            else
                g << "NU\n";
        }
    }

    return 0;
}