Pagini recente » fmi-no-stress-9-warmup/solutii | Cod sursa (job #658900) | Cod sursa (job #2066617) | Cod sursa (job #2398949) | Cod sursa (job #2212070)
#include <stdio.h>
#include <stdlib.h>
int n, m, viz[100000];
typedef struct nod {
int info;
struct nod *urm;
} nod;
int v[100000];
void dfs(int n) {
viz[n] = 1;
nod* p;
for (p = v[n]; p != NULL; p = p ->urm) {
if (viz[p->info] == 0) {
dfs(p->info);
}
}
}
int main()
{
FILE*in = fopen("dfs.in", "r");
FILE*out = fopen("dfs.out", "w");
fscanf(in, "%d %d", &n, &m);
int a, b, i;
for (i = 0; i < m; i++) {
fscanf(in, "%d %d", &a, &b);
nod* p;
p = malloc(sizeof(nod));
p->info = b;
p->urm = v[a];
v[a] = p;
p = malloc(sizeof(nod));
p->info = a;
p->urm = v[b];
v[b] = p;
}
a = 0;
for (i = 0; i < n; i++) {
if (viz[i] == 0) {
dfs(i);
a++;
}
}
fprintf(out, "%d", a);
return 0;
}