Cod sursa(job #406344)
| Utilizator | Data | 1 martie 2010 14:26:36 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include <fstream.h>
#define N 100005
using namespace std;
ifstream fin ("disjoint.in");
ofstream fout ("disjoint.out");
int T[N],n,m;
int tata(int i)
{
if (i==T[i])
return i;
T[i]=tata(T[i]);
}
int main ()
{
int a,b,c;
fin>>n>>m;
for (int i=1;i<=n;i++)
T[i]=i;
while (m)
{
m--;
fin>>a>>b>>c;
if (a==2)
fout<<((tata(b)!=tata(c))?("NU\n"):("Da\n"));
else
T[tata(c)]=b;
}
return 0;
}
