Cod sursa(job #2228643)

Utilizator butasebiButa Gabriel-Sebastian butasebi Data 4 august 2018 15:11:22
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <bits/stdc++.h>
using namespace std;
int n, m, i, c, x, y, p[100005];
int findroot(int x)
{
    if(p[x] != x)findroot(p[x]);
    else return x;
}
int main()
{
    ifstream f("disjoint.in");
    ofstream g("disjoint.out");
    f >> n >> m;
    for(i = 1;i <= n;i++)
        p[i] = i;
    for(i = 1;i <= m;i++)
    {
        f >> c >> x >> y;
        x = findroot(x);
        y = findroot(y);
        if(c == 1)p[x] = y;
        else if(x == y)g << "DA" << "\n";
        else g << "NU" << "\n";
    }
    return 0;
}