Cod sursa(job #2945707)

Utilizator angifluturFlutur Angelica-Costela angiflutur Data 24 noiembrie 2022 00:21:32
Problema Paduri de multimi disjuncte Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 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] != nod)
        return cautareParinte(parinte[nod]);
    return 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 parinteX = cautareParinte(x);
        int parinteY = cautareParinte(y);
        if (op == 1)
        {
            if (parinteX != parinteY)
                parinte[parinteX] = parinteY;
        }
        else
            if (parinteX == parinteY)
                fout << "DA" << endl;
            else
                fout << "NU" << endl;
    }
    fin.close();
    fout.close();
    return 0;
}