Cod sursa(job #1921582)

Utilizator ButmalaiDanButmalai Dan ButmalaiDan Data 10 martie 2017 13:21:38
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<fstream>
using namespace std;
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int p[100010],n,m,x,y,t;
int find(int nod)
{
    if (p[nod] == nod) return nod;
    p[nod] = find(p[nod]);
    return p[nod];
}
void unit(int a, int b)
{
    a = find(a);
    b = find(b);
    p[a] = b;
}
int main()
{
    cin >> n >> m;
    for(int i = 0; i <= n; i++) p[i] = i;
    while (m--)
    {
        cin >> t >> x >> y;
        if (t == 2) {if (find (x) == find(y)) cout << "DA\n"; else cout << "NU\n";}
        if (t == 1) unit(x, y);
    }
}