Cod sursa(job #2944738)

Utilizator razvan1234Danciu Razvan razvan1234 Data 22 noiembrie 2022 21:52:53
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
#include <iomanip>
#include <climits>

using namespace std;

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


vector<int> multimi;

void reuneste(int x, int y, vector<int> &multimi, int n)
{
    int tata = min(x, y);

    for (int i = 1; i <= n; i++){
        if (multimi[i] == x or multimi[i] == y) multimi[i] = tata;
    }
}
int main()
{
    int n, m;
    fin>>n>>m;

    multimi.resize(n+1);
    for (int i = 1; i <= n; i++) multimi[i] = i;

    for (int i = 1; i <= m; i++){
        int cod, x, y;
        fin>>cod>>x>>y;

        if (cod == 1){
            reuneste(x, y, multimi, n);
        }
        else{
            if (multimi[x] == multimi[y]) fout<<"DA"<<endl;
            else fout<<"NU"<<endl;
        }
    }

}