Pagini recente » Cod sursa (job #548256) | Cod sursa (job #2188822) | Cod sursa (job #2265228) | Cod sursa (job #999023) | Cod sursa (job #3235520)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
signed main() {
int n, m;
fin >> n >> m;
vector<vector<int>> graph(n + 1);
vector<bool> visited(n, false);
for (int i = 0; i < m; ++i) {
int x, y;
fin >> x >> y;
graph[x].push_back(y);
graph[y].push_back(x);
}
int answer = 0;
for (int i = 1; i <= n; ++i) {
stack<int> nodes;
nodes.push(i);
if (!visited[i]) {
visited[i] = true;
while (!nodes.empty()) {
int current = nodes.top();
nodes.pop();
for (int node : graph[current]) {
if (!visited[node]) {
nodes.push(node);
visited[node] = true;
}
}
}
++answer;
}
}
fout << answer;
return 0;
}