Pagini recente » Cod sursa (job #2671825) | Cod sursa (job #778468) | Cod sursa (job #2592884) | Cod sursa (job #888548) | Cod sursa (job #2859019)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("disjoint.in");
ofstream g ("disjoint.out");
int n,m,max_conex,T[32001],H[32001];
int Radacina(int k)
{ while(k!=T[k]) k=T[k];
return k;
}
void Unire(int x, int y)
{ T[x]=y; }
int main()
{
f>>n>>m;
for(int i=1;i<=n;i++)
{T[i]=i; H[i]=1;}
while(m--)
{ int op,x,y;
f>>op>>x>>y;
if(op==1)
{int rx=Radacina(x);
int ry=Radacina(y);
if(rx!=ry)
{ if(H[rx]>H[ry])
{ T[ry]=rx;
H[rx]+=H[ry];
}
else
{ T[rx]=ry;
H[ry]+=H[rx];
}
}
}
if(op==2)
{ if(Radacina(x)==Radacina(y)) g<<"DA\n"; else g<<"NU\n";}
}
f.close();g.close(); return 0;
}