Pagini recente » Cod sursa (job #225244) | Cod sursa (job #1514026) | Cod sursa (job #1322241) | Cod sursa (job #1524030) | Cod sursa (job #2067799)
#include <iostream>
#include <fstream>
#define DIM 100020
using namespace std;
ifstream fin ("disjoint.in");
ofstream fout ("disjoint.out");
int t[DIM],r[DIM];
int n,m,cod;
int Find (int x)
{
int elem,rad;
rad=x;
while (t[rad]!=0)
rad=t[rad];
while (t[x]!=0)
{
elem=t[x];
t[x]=rad;
x=elem;
}
return rad;
}
int Union (int x,int y)
{
if (r[x]>r[y])
t[y]=x;
else
if (r[x]<r[y])
t[x]=y;
else
{
t[x]=y;
r[y]++;
}
}
int main()
{
int h,r1,r2,x,y;
fin>>n>>m;
for (h=1;h<=m;h++)
{
fin>>cod>>x>>y;
if (cod==1)
{
r1=Find(x);
r2=Find(y);
if (r1!=r2)
Union(r1,r2);
}
else
{
if (Find(x)==Find(y))
fout<<"DA";
else
fout<<"NU";
fout<<"\n";
}
}
fin.close();
fout.close();
return 0;
}