Pagini recente » Cod sursa (job #2289212) | Cod sursa (job #2248092) | Cod sursa (job #2945335) | Cod sursa (job #2734697) | Cod sursa (job #2175555)
#include <cstdio>
using namespace std;
int rad[100010];
int radacina(int x)
{
int y=x;
while(y!=rad[y]) y=rad[y];
while(rad[x]!=y)
{
int aux=rad[x];
rad[x]=y;
x=aux;
}
return y;
}
void reuneste(int x,int y)
{
x=radacina(x);y=radacina(y);
rad[x]=y;
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
int n,m,x,y,tip;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) rad[i]=i;
for(int i=1;i<=m;i++)
{
scanf("%d%d%d",&tip,&x,&y);
if(tip==1) reuneste(x,y);
else
{
if(radacina(x)==radacina(y)) printf("DA\n");
else printf("NU\n");
}
}
return 0;
}