Pagini recente » Cod sursa (job #666240) | Cod sursa (job #1490902) | Cod sursa (job #3231352) | Cod sursa (job #1479687) | Cod sursa (job #560378)
Cod sursa(job #560378)
#include <cstdio>
const int N = 100001;
int n;
int tata[N];
int radacina(int x)
{
int nod = x,aux,rad;
//cautare radacina
while (tata[nod] != 0)
nod = tata[nod];
rad = nod;
//sudare
nod = x;
while (tata[nod] != 0)
{
aux = tata[nod];
tata[nod] = rad;
nod = aux;
}
return rad;
}
void reuniune(int x, int y)
{
tata[radacina(x)] = radacina(y);
}
bool in_aceeasi_multime(int x, int y)
{
return radacina(x) == radacina(y);
}
void rezolvare(int cod, int x, int y)
{
if (cod == 1)
reuniune(x,y);
else
printf(in_aceeasi_multime(x,y)?"DA\n":"NU\n");
}
int main()
{
int m,a,b,c;
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf ("%d%d",&n,&m);
for (int i = 1; i <= m; ++i)
{
scanf("%d%d%d",&a,&b,&c);
rezolvare(a,b,c);
}
return 0;
}