Cod sursa(job #277025)

Utilizator sigridMaria Stanciu sigrid Data 11 martie 2009 14:33:36
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<fstream.h>
#define dim 100001
#define min(k,kk) (k)<(kk)?(k):(kk)

int comp[dim];

int main()
{
int n,x,m,i,y,nr,c,cc,j;

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

f>>n>>m;

for(i=1;i<=n;i++)
 comp[i]=i;

for(i=1;i<=m;i++)
 {
  f>>nr>>x>>y;

  if(nr==1)
   {
    c=min(comp[x],comp[y]);
    cc=(x+y)-c;

    for(j=1;j<=n;j++)
     if(comp[j]==cc) comp[j]=c;
   }
   else if(comp[x]==comp[y]) g<<"DA"<<'\n';
	  else g<<"NU"<<'\n';
 }

f.close();
g.close();

return 0;
}