Cod sursa(job #756005)

Utilizator ion824Ion Ureche ion824 Data 8 iunie 2012 17:30:30
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<fstream>
using namespace std;
int gr[100005];

int grupa(int i)
{
    if(gr[i]==i)return i;
    gr[i]=grupa(gr[i]);
    return gr[i];
}

void join(int i,int j)
{
     gr[grupa(i)]=grupa(j);
}

int main(void)
{
   ifstream fin("disjoint.in");
   ofstream fout("disjoint.out");
   int i,x,y,cod,n,m;
   fin>>n>>m;
   for(i=1;i<=n;++i)gr[i]=i; 
                         
    for(i=1;i<=m;++i)
    {
     fin>>cod>>x>>y;
     if(cod==2){
                if(grupa(x)==grupa(y))fout<<"DA\n"; else fout<<"NU\n";
                }                 
         else
           join(x,y);
    }
    
 return 0;   
}