Cod sursa(job #1827390)

Utilizator d0rina2011Craciun Dorina d0rina2011 Data 11 decembrie 2016 19:46:53
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n, m, v[100001], h[100001];
//v[i] = radacina multimii in care se afla nodul i
//h[i] = inaltimea arborelui cu radacina in nodul i
int main()
{
    int i, x, y, c;
    fin>>n>>m;
    for(i = 1; i <= n; ++i){
        v[i] = i;
        h[i] = 1;
    }
    for(i = 1; i <= m; ++i){
        fin>>c>>x>>y;
        if(c == 1){
            if(h[x] > h[y]){
                v[y] = v[x];
                h[x] += h[y];
            }
            else{
                v[x] = v[y];
                h[y] += h[x];
            }
        }
        else{
            if(v[x] == v[y]){
                fout<<"DA\n";
            }
            else {
                fout<<"NU\n";
            }
        }
    }
    return 0;
}