Pagini recente » Cod sursa (job #2836312) | Cod sursa (job #1111683) | Cod sursa (job #2785867) | Cod sursa (job #1834133) | Cod sursa (job #1435867)
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
int N, M;
vector<int> graph[100100];
bool viz[100100];
int components;
void dfs(int n) {
viz[n] = true;
for (int i=0; i<graph[n].size(); ++i) {
if (!viz[graph[n][i]]) {
dfs(graph[n][i]);
}
}
}
int main () {
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
int x, y;
scanf("%d %d", &N, &M);
for (;M;--M) {
scanf("%d %d", &x, &y);
graph[x].push_back(y);
graph[y].push_back(x);
}
for (int i=1; i<=N; ++i) {
if (!viz[i]) {
dfs(i);
++components;
}
}
printf("%d", components);
return 0;
}