Pagini recente » Cod sursa (job #1854086) | Cod sursa (job #1960806) | Cod sursa (job #246335) | Cod sursa (job #237822) | Cod sursa (job #341634)
Cod sursa(job #341634)
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int N;
vector< vector<int> > G;
vector<int> visited;
int dfs(int s) {
for (int i = 0; i < G[s].size(); i++) {
if (!visited[G[s][i]]) {
visited[G[s][i]] = 1;
dfs(G[s][i]);
}
}
}
main() {
int n, m;
int x, y;
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
scanf("%d%d", &n, &m);
N = n + 1;
G = vector< vector<int> >(N, vector<int>());
for (int i = 0; i < m; i++) {
scanf("%d%d", &x, &y);
G[x].push_back(y);
G[y].push_back(x);
}
int count = 0;
visited = vector<int>(N, false);
for (int i = 1; i <= n; i++) {
if (!visited[i]) {
dfs(i);
count++;
}
}
printf("%d\n", count);
}