Cod sursa(job #655837)

Utilizator Anna_cristinaButucea Ana Cristina Anna_cristina Data 3 ianuarie 2012 15:31:21
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<fstream>
using namespace std;

long v[100001];

int cauta(long x)
{while(v[x]!=x)
    x=v[x];
 return x;
} 

void reun(long x,long y)
{long xx,yy;
 xx=cauta(x);
 yy=cauta(y);
 v[yy]=xx;
}  

int main()
{long i,x,y,n,m;
 int cod;
 ifstream f("disjoint.in");
 ofstream g("disjoint.out");
 f>>n>>m;
 for(i=1;i<=n;i++)
   v[i]=i;
 for(i=1;i<=m;i++)
    {f>>cod>>x>>y;
     if(cod==1)  reun(x,y);
       else      if(cauta(x)==cauta(y))  g<<"DA\n";
                    else                 g<<"NU\n";
     } 
 f.close();
 g.close();
 return 0;
}