Pagini recente » Cod sursa (job #473207) | Cod sursa (job #1201863) | Cod sursa (job #437218) | Cod sursa (job #3272090) | Cod sursa (job #1770200)
#include <cstdio>
using namespace std;
int n, m;
int parinti[100005];
int nr;
int gasireParinti(int x)
{
if(parinti[x] == x)
{
return x;
}
else
{
nr++;
return gasireParinti(parinti[x]);
}
}
int main()
{
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
int tmp1, tmp2, tmp3;
scanf("%d %d", &n, &m);
for(int i = 0; i < n; i++)
{
parinti[i] = i;
}
for(int i = 0; i < m; i++)
{
scanf("%d %d %d", &tmp1, &tmp2, &tmp3);
if(tmp1 == 1)
{
nr = 0;
int nr1, nr2;
int nrx1, nrx2;
nrx1 = gasireParinti(tmp2);
nr1 = nr;
nr = 0;
nrx2 = gasireParinti(tmp3);
nr2 = nr;
if(nr1 > nr2)
{
parinti[nrx1] = gasireParinti(nrx2);
}
else
{
parinti[nrx2] = gasireParinti(nrx1);
}
}
else
{
if(gasireParinti(tmp2) == gasireParinti(tmp3))
{
printf("DA\n");
}
else
{
printf("NU\n");
}
}
}
return 0;
}