Pagini recente » Cod sursa (job #1183230) | Cod sursa (job #699596) | Cod sursa (job #695444) | Cod sursa (job #2841602) | Cod sursa (job #3216472)
#include <iostream>
#include <fstream>
#include <vector>
std::vector<std::vector<int>> graph;
std::vector<bool> visited;
void dfs(int curr) {
visited[curr] = true;
for (auto& next : graph[curr]) {
if (!visited[next]) {
dfs(next);
}
}
}
int main() {
int N, M;
std::ifstream input("dfs.in");
input >> N >> M;
graph.resize(N + 1);
visited.resize(N + 1);
int x, y;
for (int i = 0; i < M; i++) {
input >> x >> y;
graph[x].push_back(y);
}
int res = 0;
for (int i = 1; i <= N; i++) {
if (!visited[i]) {
dfs(i);
res++;
}
}
std::ofstream output("dfs.out");
output << res << std::endl;
return 0;
}