Cod sursa(job #2844208)

Utilizator PalffyLehelPalffy Lehel PalffyLehel Data 3 februarie 2022 22:33:22
Problema Paduri de multimi disjuncte Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.07 kb
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream f("disjoint.in");
    ofstream g("disjoint.out");

    int n, m;
    f >> n >> m;

    int diszjunktTomb[n];

    for (int i = 0; i < n; i++)
    {
        diszjunktTomb[i] = i;
    }

    for (int i = 0; i < m; i++)
    {
        int x, y, z;
        f >> z >> x >> y;
        x--;
        y--;

        if (z == 1)
        {
            for (int i = 0 ; i < n; i++)
            {
                int mentes = diszjunktTomb[y];

                for (int j = 0; j <= n; j++)
                {
                    if (diszjunktTomb[j] == mentes)
                    {
                        diszjunktTomb[j] = diszjunktTomb[x];
                    }
                }
            }
        }

        else
        {
            if (diszjunktTomb[x] == diszjunktTomb[y])
            {
                g << "DA" << endl;
            }

            else
            {
                g << "NU" << endl;
            }
        }
    }



    return 0;
}