Pagini recente » Cod sursa (job #1628844) | Cod sursa (job #235181) | Cod sursa (job #1297082) | Cod sursa (job #579958) | Cod sursa (job #3312733)
#include <bits/stdc++.h>
using namespace std;
void dfs(int const u, vector<bool>& vis, vector<vector<int>> const& G) {
vis[u] = true;
for (int const v : G[u]) {
if (!vis[v]) {
dfs(v, vis, G);
}
}
}
int main() {
#ifndef LOCAL
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
#endif
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N;
int M;
cin >> N >> M;
vector<vector<int>> G(N);
for (; M--;) {
int X;
int Y;
cin >> X >> Y;
--X;
--Y;
G[X].push_back(Y);
}
int cc = 0;
vector<bool> vis(N, false);
for (int i = 0; i < N; ++i) {
if (!vis[i]) {
++cc;
dfs(i, vis, G);
}
}
cout << cc << endl;
return 0;
}