Cod sursa(job #2658794)

Utilizator BAlexandruBorgovan Alexandru BAlexandru Data 15 octombrie 2020 08:57:05
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;
}