Cod sursa(job #2048310)

Utilizator CezarTDTodirisca Cezar CezarTD Data 25 octombrie 2017 22:05:37
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>
#define N 100010
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int tata[N],x,y,q,rootx,rooty,get_root(int),n,m;
int main()
{
    fin>>n>>m;
    for(int i=1;i<=n;i++)tata[i]=i;
    for(;m;m--)
    {
        fin>>q>>x>>y;
        rootx=get_root(x);
        rooty=get_root(y);
        if(q==1)
            tata[rootx]=rooty;
        else rootx==rooty?fout<<"DA\n":fout<<"NU\n";
    }
    return 0;
}

int get_root(int nod)
{
    if(tata[nod]==nod)return nod;
    tata[nod]=get_root(tata[nod]);
    return tata[nod];
}