Cod sursa(job #507927)
| Utilizator | Data | 7 decembrie 2010 08:38:00 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.41 kb |
#include<fstream>
using namespace std;
int t[100000],n,m;
int tt(int a)
{
while (t[a]!=0)
a=t[a];
return a;
}
int main()
{
int i,j,x,y,op;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
in>>n>>m;
for (i=1;i<=m;i++)
{
in>>op>>x>>y;
if (op==1)
{
t[y]=tt(x);
}
else if (op==2)
{
if (tt(x)!=tt(y))
out<<"NU\n";
else
out<<"DA\n";
}
}
}
