Pagini recente » Cod sursa (job #1713435) | Cod sursa (job #869326) | Cod sursa (job #244335) | Cod sursa (job #2713217) | Cod sursa (job #2782399)
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int v[100005],f[100005];
int unire(int rx,int ry)
{
if(v[rx]>v[ry])
f[ry]=rx;
else if(v[rx]<v[ry])
f[rx]=ry;
else if(v[rx]==v[ry])
{
f[rx]=ry;
v[ry]++;
}
}
int multime(int a)
{
while(a!=f[a])
a=f[a];
return a;
}
int main()
{
int n,m,cer,x,y,i;
fin>>n>>m;
while(n>0)
{
f[n]=n;
n--;
}
for(i=0;i<m;i++)
{
fin>>cer>>x>>y;
if(cer==1)
unire(x,y);
else
if(multime(x)==multime(y))
fout<<"DA"<<'\n';
else
fout<<"NU"<<'\n';
}
return 0;
}