Cod sursa(job #2211120)

Utilizator calinmackCalin Manoli calinmack Data 9 iunie 2018 13:50:23
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
const int maxx = 100001;
int tata[maxx],n,i,m;
int find_tata(int x)
{
    if(tata[x]==x)
        return x;
    int ans = find_tata(tata[x]);
    tata[x]=ans;
    return ans;
}
int main()
{
    in>>n>>m;
    for(int i=1;i<=n;i++)
        tata[i]=i;
    for(int i=1;i<=m;i++)
    {
        int cod,x,y,tx,ty;
        in>>cod>>x>>y;
        tx=find_tata(x);
        ty=find_tata(y);
        if(cod==1)
            tata[tx]=ty;
        else
        {
            if(tx==ty)
                out<<"DA\n";
            else
                out<<"NU\n";
        }
    }
    return 0;
}