Cod sursa(job #655812)

Utilizator Anna_cristinaButucea Ana Cristina Anna_cristina Data 3 ianuarie 2012 14:50:15
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<fstream>
#include<iostream>
using namespace std;

long v[100005],n,m;

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 interog(long x,long y)
{if(v[x]==v[y])  return 1;
 return 0;
}

int main()
{long i,x,y;
 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(interog(x,y)==1)  g<<"DA"<<endl;
                    else              g<<"NU"<<endl;
     } 
 f.close();
 g.close();
 return 0;
}