Pagini recente » Cod sursa (job #409389) | Cod sursa (job #1023095) | Cod sursa (job #290793) | Cod sursa (job #1507038) | Cod sursa (job #556461)
Cod sursa(job #556461)
#include <cstdio>
using namespace std;
struct nod {
int inf;
nod *next;
} *G[100001];
int n, m;
int used[100001];
int nrC;
void adauga(int x, int inf) {
nod *aux = new nod;
aux->inf = inf;
aux->next = G[x];
G[x] = aux;
}
void afiseaza(int x) {
printf("Nodul %d: ", x);
for (nod *p = G[x]; p; p = p->next)
printf("%d ", p->inf);
printf("\n");
}
void dfs(int x) {
used[x] = 1;
for (nod *p = G[x]; p; p = p->next)
if (!used[p->inf])
dfs(p->inf);
}
int main() {
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
scanf("%d %d", &n, &m);
int x, y;
for (int i = 1; i <= m; i++) {
scanf("%d %d", &x, &y);
adauga(x, y);
}
for (int i = 1; i <= n; i++)
if (!used[i]) {
dfs(i);
nrC++;
}
printf("%d", nrC);
return 0;
}