Pagini recente » Cod sursa (job #2548580) | Cod sursa (job #393168) | Cod sursa (job #2386772) | Cod sursa (job #357852) | Cod sursa (job #3198530)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("dfs.in");
ofstream cout("dfs.out")
void dfs(vector<vector<int>> &g, vector<bool> &viz, int start) {
vector<int> langa = g[start];
viz[start] = true;
for(auto i : langa) {
if(!viz[i]) dfs(g, viz, i);
}
}
int main()
{
int n, m;
cin >> n >> m;
vector<vector<int>> g(n+1);
vector<bool> viz(n, false);
for(int i = 0; i < m; i++) {
int x, y;
cin >> x >> y;
g[x].push_back(y);
}
int ans = 0;
for(int i = 1; i <= n; i++) {
ans += !viz[i];
if(!viz[i]) dfs(g, viz, i);
}
cout << ans << "\n";
}