Pagini recente » Cod sursa (job #2907448) | Cod sursa (job #1134438) | Cod sursa (job #2667967) | Cod sursa (job #2451568) | Cod sursa (job #2837425)
#include <fstream>
using namespace std;
ifstream fin ("disjoint.in");
ofstream fout ("disjoint.out");
int n,m,h[100001],t[100001],i,o,x,y,r1,r2,a;
int main()
{
fin>>n>>m;
for (i=1; i<=n; i++)
{
t[i]=i;
h[i]=1;
}
for (i=1; i<=m; i++)
{
fin>>o>>x>>y;
r1=x;
r2=y;
while (r1!=t[r1]) r1=t[r1];
while (r2!=t[r2]) r2=t[r2];
if (o==1)
{
if (h[r1]>h[r2]) t[r2]=r1;
else
{
t[r1]=r2;
if (h[r1]==h[r2]) h[r2]++;
}
}
else
{
if (r2==r1) fout<<"DA"<<'\n';
else fout<<"NU"<<'\n';
}
while (x!=r1)
{
a=t[x];
t[x]=r1;
x=a;
}
while (y!=r2)
{
a=t[y];
t[y]=r2;
y=a;
}
}
return 0;
}