Cod sursa(job #2224142)

Utilizator Luca19Hritcu Luca Luca19 Data 23 iulie 2018 10:50:24
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>

using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
const int MAX=1000001;
int tata[MAX],n,m,i;
int find_tata(int x)
{
    if(tata[x]==x)
        return x;
    int ans=find_tata(tata[x]);
    tata[x]=ans;
        return ans;
}
int main()
{
   f>>n>>m;
   for(i=1;i<=n;i++)
   {
       tata[i]=i;
   }
   for(i=1;i<=m;i++)
     {
         int cod,x,y,tx,ty;
         f>>cod>>x>>y;
         tx=find_tata(x);
         ty=find_tata(y);
         if(cod==1)
            tata[tx]=ty;
         else
         {
             if(tx==ty)
            g<<"DA\n";
            else
                g<<"NU\n";
         }
     }
    return 0;
}