Cod sursa(job #1836060)

Utilizator d0rina2011Craciun Dorina d0rina2011 Data 27 decembrie 2016 19:31:54
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n, m, t[100001], h[100001];

int main()
{
    int i, op, x, y;
    fin>>n>>m;
    for(i = 1; i <= m; i++){
        fin>>op>>x>>y;
        if(op == 1){
            while(t[x]){
                x = t[x];
            }
            while(t[y]){
                y = t[y];
            }
            if(h[x] < h[y]){
                t[x] = y;
                h[y]++;
            } else {
                t[y] = x;
                h[y]++;
            }
        } else{
            while(t[x])
                x = t[x];
            while(t[y])
                y = t[y];
            if(x == y)
                fout<<"DA"<<'\n';
            else fout<<"NU"<<'\n';
        }
    }
}