Pagini recente » Cod sursa (job #1669322) | Cod sursa (job #703335) | Cod sursa (job #335654) | Cod sursa (job #2563290) | Cod sursa (job #2594620)
#include <stdio.h>
#include <string.h>
#define NMAX 100000
typedef struct {
int a;
} LinkedList;
void init(int *t, int n) {
for (int i = 0; i < n; i++) {
t[i] = 0;
}
}
int get_root(int *t, int node) {
int root = node, next;
while (t[root] != 0) {
root = t[root];
}
while (t[node] != 0) {
next = t[node];
t[node] = root;
node = next;
}
return root;
}
int main() {
int n, x, y, t[NMAX + 1] = {0}, cnt = 0;
long long m;
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
scanf("%d%lld", &n, &m);
while (m--) {
scanf("%d%d", &x, &y);
int root1 = get_root(t, x), root2 = get_root(t, y);
if (root1 == root2)
continue;
t[root1] = root2;
}
for (int i = 1; i <= n; i++) {
if (t[i] == 0) {
cnt++;
}
}
printf("%d", cnt);
}