Pagini recente » Cod sursa (job #1243408) | Cod sursa (job #306963) | Cod sursa (job #2175218) | Cod sursa (job #2903082) | Cod sursa (job #2806008)
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n,m,x,y,tip,tata[100001],nrnod[100001];
int radacina(int x)
{
if(tata[x]==x)
return x;
return tata[x]=radacina(tata[x]);
}
int main()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
{
tata[i]=i;
nrnod[i]=1;
}
for(int i=1;i<=m;i++)
{
fin>>tip>>x>>y;
int radx=radacina(x);
int rady=radacina(y);
if(tip==1)
{
if(nrnod[radx]>nrnod[rady])
{
nrnod[radx]+=nrnod[rady];
tata[rady]=radx;
}
else
{
nrnod[rady]+=nrnod[radx];
tata[radx]=rady;
}
}
else
{
if(radx!=rady)
fout<<"NU";
else
fout<<"DA";
fout<<"\n";
}
}
return 0;
}