Pagini recente » Cod sursa (job #2987485) | Cod sursa (job #2986141) | Cod sursa (job #1895571) | Cod sursa (job #74755) | Cod sursa (job #2357657)
#include <cstdio>
using namespace std;
//ifstream in("disjoint.in");
//ofstream out("disjoint.out");
int sef[100005];
inline int sefsup(int x)
{
if(sef[x]==x)
return x;
else
return sef[x]=sefsup(sef[x]);
}
void unire(int x, int y)
{
int sefsx=sefsup(x),sefsy=sefsup(y);
sef[sefsy]=sefsx;
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
int n,m,i,tip,a,b;
scanf("%d %d", &n, &m);
for(i=1;i<=n;i++)
sef[i]=i;
for(i=1;i<=m;i++)
{
scanf("%d %d %d",&tip, &a, &b);
if(tip==1)
unire(a,b);
if(tip==2)
{
if(sefsup(a)==sefsup(b))
{
printf("DA\n");
}
else
printf("NU\n");
}
}
return 0;
}