Cod sursa(job #2211126)

Utilizator denn1s78dennis denn1s78 Data 9 iunie 2018 13:53:03
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>

using namespace std;

const int MAX=1000001;
int tata[MAX],n,m;

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

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;
}