Cod sursa(job #2038963)

Utilizator vancea.catalincatalin vancea.catalin Data 14 octombrie 2017 10:23:00
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<iostream>
#include<fstream>
#include<vector>
#include<set>
#define DN 100010
using namespace std;
fstream fin("disjoint.in",ios::in),fout("disjoint.out",ios::out);
int n,m,t[DN];
int tata(int nod)
{
    if(t[nod]==nod) return nod;
    t[nod]=tata(t[nod]);
}
int main()
{
    int i,j,op,x,y,tx,ty;
    fin>>n>>m;
    for(i=1;i<=DN;i++) t[i]=i;
    for(i=1;i<=m;i++)
    {
        fin>>op>>x>>y;
        tx=tata(x);
        ty=tata(y);
        if(op==2)
        {
            if(tx==ty)
                fout<<"DA\n";
            else
                fout<<"NU\n";
        }
        else
            t[tx]=ty;
    }
}