Pagini recente » Cod sursa (job #2623491) | Cod sursa (job #2571781) | Cod sursa (job #2618676) | Cod sursa (job #630954) | Cod sursa (job #1041935)
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#define NMAX 100001
using namespace std;
int N, M, i, node1, node2, CC;
vector<int> G[NMAX];
bool Used[NMAX];
inline void DFS(int Node) {
Used[Node] = true;
for(vector<int>::iterator AdjNode = G[Node].begin(); AdjNode != G[Node].end(); ++AdjNode)
if(!Used[*AdjNode])
DFS(*AdjNode);
}
int main() {
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
scanf("%d%d", &N, &M);
while(M--) {
scanf("%d%d", &node1, &node2);
G[node1].push_back(node2);
G[node2].push_back(node1);
}
memset(Used, false, sizeof(bool));
for(i = 1; i <= N; ++i)
if(!Used[i]) {
++CC;
DFS(i);
}
printf("%d\n", CC);
return 0;
}