Pagini recente » Cod sursa (job #140585) | Cod sursa (job #2669585) | Cod sursa (job #486430) | Cod sursa (job #30195) | Cod sursa (job #1755076)
#include <fstream>
using namespace std;
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int n,m,op,x,y;
int Arb[100010];
int Radacina(int x)
{
int ra=x,aux=0;
while(Arb[ra]!=ra){ra=Arb[ra];}
while(Arb[x]!=x){aux=Arb[x],Arb[x]=ra,x=aux;}
return ra;
}
void Reun(int x,int y)
{
if(x>y)
Arb[y]=x;
else
Arb[x]=y;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;++i)
Arb[i]=i;
for(int i=1;i<=m;++i)
{
cin>>op>>x>>y;
if(op==1)
Reun(Radacina(x),Radacina(y));
if(op==2)
{
if(Radacina(x)==Radacina(y))
cout<<"DA\n";
else
cout<<"NU\n";
}
}
return 0;
}