Pagini recente » Cod sursa (job #333153) | Cod sursa (job #3265122) | Cod sursa (job #1959808) | Cod sursa (job #3172911) | Cod sursa (job #206778)
Cod sursa(job #206778)
#include <stdio.h>
#include <vector>
using namespace std;
const int N_MAX = 100010;
int N, M, nrc;
vector <int> G[N_MAX];
int comp[N_MAX];
void DFS(int nod, int cul)
{
comp[nod] = cul;
for (vector <int>::iterator it = G[nod].begin(); it != G[nod].end(); ++ it) {
if (!comp[*it]) {
DFS(*it, cul);
}
}
}
int main()
{
freopen("dfs.in", "r", stdin);
#ifndef _SCREEN_
freopen("dfs.out", "w", stdout);
#endif
int X, Y;
scanf("%d %d\n", &N, &M);
for (int i = 1; i <= M; i ++) {
scanf("%d %d\n", &X, &Y);
G[X].push_back(Y);
G[Y].push_back(X);
}
for (int i = 1; i <= N; i ++) {
if (!comp[i]) {
nrc ++;
DFS(i, nrc);
}
}
printf("%d\n", nrc);
return 0;
}