Cod sursa(job #2945712)

Utilizator angifluturFlutur Angelica-Costela angiflutur Data 24 noiembrie 2022 00:31:25
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include<iostream>
#include<fstream>
#include<vector>

using namespace std;

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

int N, M;

int op, x, y;

vector<int> parinte;

int cautareParinte(int nod)
{
    if (parinte[nod] != nod)
        return cautareParinte(parinte[nod]);
    return nod;
}
int main()
{
    fin >> N >> M;

    parinte.resize(N + 1);

    for (int i = 0; i < N; i++)
        parinte[i] = i;

    for (int i = 0; i < M; i++)
    {
        fin>>op>>x>>y;
        if(op==1)
        {
            //unire arbori
            parinte[cautareParinte(y)]=cautareParinte(x);
        }
        else
        {
            if(cautareParinte(x)==cautareParinte(y))
            {
                fout<<"DA \n";
            }
            else fout<<"NU \n";
        }
    }
    fin.close();
    fout.close();
    return 0;
}