Cod sursa(job #227545)
| Utilizator | Data | 4 decembrie 2008 21:08:47 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | Ascuns |
| Compilator | cpp | Status | done |
| Runda | Marime | 0.66 kb |
#include <stdio.h>
int N, M, n, set[100005];
int main()
{
int i, j, k, l, i1, i2;
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
scanf("%d %d", &N, &M);
for (n = N, i = 1; i <= N; ++i)
set[i] = i;
for (; M; --M)
{
scanf("%d %d %d", &i, &j, &k);
i1 = set[j]; i2 = set[k];
if (i == 1)
{
++n;
for (l = 1; l <= N; ++l)
if (set[l] == i1 || set[l] == i2)
set[l] = n;
continue;
}
printf("%s\n", i1 == i2 ? "DA" : "NU");
}
return 0;
}
