Pagini recente » Borderou de evaluare (job #1513237) | Rating Oancea Eduard (Bazagazeal) | Borderou de evaluare (job #2079273) | Borderou de evaluare (job #1712061) | Cod sursa (job #1974408)
#include <cstdio>
using namespace std;
const int Nmax = 100005;
int daddy[Nmax], ranc[Nmax];
int whos_ur_daddy(int k) {
if(daddy[k] != k)
daddy[k] = whos_ur_daddy(daddy[k]);
return daddy[k];
}
int couple(int a, int b) {
if(ranc[a] > ranc[b])
daddy[b] = a;
else if(ranc[b] > ranc[a])
daddy[a] = b;
else {
daddy[b] = a;
ranc[a] += 1;
}
}
int main()
{
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
int N, K;
scanf("%d%d", &N, &K);
for(int i = 1; i <= N; ++i)
daddy[i] = i;
for(int i = 1; i <= K; ++i) {
int a,b,c;
scanf("%d%d%d",&a, &b, &c);
if(a == 1)
couple(whos_ur_daddy(b), whos_ur_daddy(c));
else {
if(whos_ur_daddy(b) == whos_ur_daddy(c))
printf("DA\n");
else
printf("NU\n");
}
}
return 0;
}