Pagini recente » Cod sursa (job #1136035) | Cod sursa (job #1183075) | Cod sursa (job #1219946) | Cod sursa (job #510890) | Cod sursa (job #1770201)
#include <cstdio>
using namespace std;
int n, m;
int parinti[100005];
int nr;
int gasireParinti(int x)
{
while(x != parinti[x])
{
x = parinti[x];
}
return 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;
}