Cod sursa(job #2648297)

Utilizator felix24mihaiPrava Felix Mihai felix24mihai Data 9 septembrie 2020 21:06:35
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp-32 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <vector>
#define NMax 100001
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");

int n, father[NMax];
int find2(int a){
    if (father[a] == a)
        return a;
    return find2(father[a]);
}

void unionOf(int a, int b){
    father[find2(a)] = find2(b);
}

void findOf(int a, int b){
    if (find2(a) == find2(b))
        g <<"DA\n";
    else
        g << "NU\n";
}
void read(){
    int m;
    f >> n >> m;
    for (int i=1; i<=n; i++)
        father[i] = i;
    int a,b,c;
    for (int i=1; i<=m; i++){
        f >> a >> b >> c;
        if (a == 1)
            unionOf(b,c);
        else
            findOf(b,c);
    }
}

int main()
{
    read();
    return 0;
}