Cod sursa(job #2945687)

Utilizator angifluturFlutur Angelica-Costela angiflutur Data 24 noiembrie 2022 00:00:02
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <bits/stdc++.h>

using namespace std;

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

int N, M;

int op, x, y;

int parinte[100001];

int cautareParinte(int nod)
{
    if(parinte[nod] == 0)
        return nod;
    parinte[nod] = cautareParinte(parinte[nod]);
    return parinte[nod];

}
int main()
{
    fin >> N >> M;

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

    for(int i = 0; i < M; i++)
    {
        fin >> op >> x >> y;

        int parinte_x = cautareParinte(x);
        int parinte_y = cautareParinte(y);

        if(op == 1)
        {
            

            if(parinte_x != parinte_y)
                parinte[parinte_x] = parinte_y;
        }
        else if(op == 2)
            if(parinte_x == parinte_y)
                fout << "DA" << endl;
            else
                fout<< "NU" << endl;
    }
    fin.close();
    fout.close();
    return 0;
}