Pagini recente » Cod sursa (job #511029) | Cod sursa (job #418531) | Cod sursa (job #2201680) | Cod sursa (job #554464) | Cod sursa (job #3037842)
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n,m;
int t[100005];
int rad(int val)
{
int aux = val;
while(t[val]>0)
{
val=t[val];
}
int r = val;
val=aux;
while(t[val]>0)
{
int tmp = t[val];
t[val]=r;
val=tmp;
}
return val;
}
int main()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
{
t[i]=-1;
}
for(int i=1;i<=m;i++)
{
int op,x,y;
fin>>op>>x>>y;
if(op==1)
{
int rx = rad(x);
int ry = rad(y);
if(-t[rx]>-t[ry])
{
t[rx]+=t[ry];
t[ry]=x;
}
else
{
t[ry]+=t[rx];
t[rx]=y;
}
}
else
{
(rad(y)==rad(x)) ? fout<<"DA" : fout<<"NU";
fout<<'\n';
}
}
}