Pagini recente » Cod sursa (job #1014574) | Cod sursa (job #2926233) | Cod sursa (job #1715753) | Cod sursa (job #1190075) | Cod sursa (job #214589)
Cod sursa(job #214589)
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#define MAXN 100010
long *G[MAXN], deg[MAXN], n, m, sol, sel[MAXN], Y2, Y1, i;
void read() {
long Y1 = 0, Y2 = 0;
scanf("%ld %ld", &n, &m);
for (long i = 1; i <= m; ++i) {
scanf("%ld, %ld", &Y1, &Y2);
++deg[Y1];
++deg[Y2];
}
}
void DFS(long Y1) {
for (long i = 0; i < deg[Y1]; ++i) {
if (!sel[G[Y1][i]]) {
sel[G[Y1][i]] = 1;
DFS(G[Y1][i]);
}
}
}
int main() {
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
read(); //gradele
for (i = 1; i <= n; ++i) {
G[i] = (long *)malloc(sizeof(long) * deg[i]);
}
fclose(stdin);
memset(deg, 0, sizeof(deg));
freopen("dfs.in", "r", stdin);
scanf("%ld %ld", &n, &m);
for (i = 0; i < m; ++i) {
scanf("%ld %ld", &Y1, &Y2);
G[Y1][deg[Y1]++] = Y2;
G[Y2][deg[Y2]++] = Y1;
}
for (i = 1; i <= n; ++i) {
if (!sel[i]) {
sel[i] = 1;
DFS(i);
++sol;
}
}
printf("%ld\n", sol);
return 0;
}