Pagini recente » Cod sursa (job #2436629) | Cod sursa (job #2841182) | Cod sursa (job #2221814) | Cod sursa (job #2414148) | Cod sursa (job #2028940)
#include <cstdio>
#define in "disjoint.in"
#define out "disjoint.out"
#define N 100003
using namespace std;
int n,m,p,x,y,t[N];
inline void unite(int X,int Y) //tata - fiu
{
t[Y] = X;
}
inline int root(int nod)
{
int rad = nod;
int urm;
while(t[rad] > 0)
rad = t[rad];
while(t[nod] > 0)
{
urm = t[nod];
t[nod] = rad;
nod = urm;
}
return rad;
}
int main()
{
freopen(in,"r",stdin);
freopen(out,"w",stdout);
scanf("%d %d",&n,&m);
int rx,ry;
while(m--)
{
scanf("%d%d%d",&p,&x,&y);
rx = root(x);
ry = root(y);
if(p == 1)
{
if(rx != ry)
unite(rx,ry);
}
else
{
if(rx != ry) printf("NU\n");
else printf("DA\n");
}
}
fclose(stdin); fclose(stdout);
return 0;
}