Pagini recente » Cod sursa (job #2863985) | Cod sursa (job #1220660) | Cod sursa (job #1611595) | Cod sursa (job #1168816) | Cod sursa (job #2758596)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
void dfs(int node, vector<bool>& visited, vector<vector<int>>& graph){
visited[node] = 1;
for(auto vecin : graph[node])
if(!visited[vecin])
dfs(vecin, visited, graph);
}
int main()
{
ifstream cin("dfs.in");
ofstream cout("dfs.out");
int N, M, S = 0, x, y;
cin >> N >> M;
vector<vector<int>> graph(N, vector<int>{});
vector<bool> visited(N, false);
for(int i = 0; i < M; ++i){
cin >> x >> y;
graph[--x].push_back(--y);
}
for(int i = 0; i < N; ++i)
if(!visited[i]){
++S;
dfs(i, visited, graph);
}
cout << S;
cin.close();
cout.close();
return 0;
}