Cod sursa(job #2038984)

Utilizator AlexTheDagonBogdan Tudor AlexTheDagon Data 14 octombrie 2017 10:29:25
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <iostream>
#include <fstream>
#define NM 100005
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int n,m,a,b,c,p[NM];
int parinte(int nod)
{
    if(p[nod]==nod)return nod;
    return p[nod]=parinte(p[nod]);
}
void unire(int x,int y)
{
    p[parinte(x)]=parinte(y);
}
int main()
{
    in>>n>>m;
    for(int i=1;i<=n;++i)p[i]=i;
    for(int i=1;i<=m;++i)
    {
        in>>c>>a>>b;
        if(c==1)unire(a,b);
        else
        {
            if(parinte(a)==parinte(b))out<<"DA"<<'\n';
            else out<<"NU"<<'\n';
        }
    }
    return 0;
}