Cod sursa(job #2947071)

Utilizator anca-soranaBalan Anca-Sorana anca-sorana Data 25 noiembrie 2022 17:42:11
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>

using namespace std;

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

int N, M;
int op, x, y;
int dx, dy;
int mult[100001];

int verif(int a)
{
    if (mult[a] != a)
      mult[a] = verif(mult[a]);
    return mult[a];
}

int main()
{
    f>>N>>M;
    for (int i = 1; i <= N; i++)
      mult[i] = i;
    for (int i = 1; i <= M; i++)
    {
        f>>op>>x>>y;
        dx = verif(x);
        dy = verif(y);
        if (op==1)
          mult[dx] = dy;
        else
        {
            if (dx == dy)
              g<<"DA\n";
            else
              g<<"NU\n";
        }
    }
    return 0;
}