Pagini recente » Cod sursa (job #18817) | Cod sursa (job #1191709) | Cod sursa (job #689952) | Cod sursa (job #2577882) | Cod sursa (job #2837439)
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int aux,r1,r2,x,y,h[100001],t[100001],n,m,i,p;
int main()
{
fin>>n>>m;
for(i=1; i<=n; i++)
{
h[i]=1;
t[i]=i;
}
for(i=1; i<=m; i++)
{
fin>>p>>x>>y;;
r1=x;
r2=y;
while(r1!=t[r1])r1=t[r1];
while(r2!=t[r2])r2=t[r2];
if(p==2)
{
if(r1==r2)fout<<"DA";
else fout<<"NU";
fout<<'\n';
while(x!=r1)
{
aux=t[x];
t[x]=r1;
x=aux;
}
while(y!=r2)
{
aux=t[y];
t[y]=r2;
y=aux;
}
}
else
{
if(h[r1]>h[r2]) t[r2]=r1;
else
{
t[r1]=r2;
if(h[r1]==h[r2])h[r2]++;
}
}
}
return 0;
}