Cod sursa(job #2935659)

Utilizator IRadu1529Radu Ionescu IRadu1529 Data 7 noiembrie 2022 11:38:59
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <fstream>
#include <queue>
#define N 100001
using namespace std;

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

int n, m, cod;

int find(int nod, vector<int>& p) {
    if (p[nod] == 0)
        return nod;

    p[nod] = find(p[nod], p);
}

void Union(int x, int y, vector<int>&p) {
    int tx = find(x, p), ty = find(y, p);
    if (tx != ty) {
        if (cod == 2)
            fout << "NU\n";
        else p[ty] = tx;
    }
    else {
        if (cod == 2)
            fout << "DA\n";
    }
}

int main() {

    vector<int> p(n + 1, 0);

    fin >> n >> m;

    while (m--) {
        int a, b;
        fin >> cod >> a >> b;
        Union(a, b, p);
    }
}