Cod sursa(job #2718872)

Utilizator ognean.mihnea12Ognean Mihnea Ionut ognean.mihnea12 Data 9 martie 2021 12:12:56
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <queue>
#include <stack>
#include <cstring>
using namespace std;

#define NMAX 1000005

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

int tati[NMAX], i, j, n, m, v, x, y;

int radacina(int nod)
{
    if(tati[nod]==0)
        return nod;
    else
    {
        int x=radacina(tati[nod]);
        tati[nod]=x;
        return x;
    }
}

int main()
{
    fin>>n>>m;
    for(i=1; i<=m; i++)
    {
        fin>>v>>x>>y;
        int rx=radacina(x);
        int ry=radacina(y);
        if(v==1)
        {
            if(rx!=ry)
            {
                tati[ry]=rx;
            }
        }
        else
        {
            if(rx==ry)
                fout<<"DA"<<'\n';
            else
                fout<<"NU"<<'\n';
        }
    }
    return 0;
}