Pagini recente » Cod sursa (job #2075844) | Cod sursa (job #383868) | Rating Negrea Robert (alpho) | Cod sursa (job #2007456) | Cod sursa (job #2841244)
#include <algorithm>
#include <cstdio>
#include <vector>
using namespace std;
int N, M, ans = 0;
vector<bool> visited;
vector<vector<int>> G;
void dfs(int node) {
visited[node] = true;
for (auto neigh : G[node]) {
if (!visited[neigh])
dfs(neigh);
}
}
int main() {
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
scanf("%d %d", &N, &M);
G.resize(N + 1); // G devine un vector de dimensiune N + 1
visited.resize(N + 1); // visited e vector de N + 1 elemente
fill(visited.begin(), visited.end(),
false); // toate nodurile sunt nevizitate (false)
for (int i = 1; i <= M; i++) {
int x, y;
scanf("%d %d", &x, &y);
G[x].push_back(y);
G[y].push_back(x);
}
for (int i = 1; i <= N; i++) {
if (!visited[i]) {
dfs(i);
ans++;
}
}
printf("%d\n", ans);
return 0;
}