Pagini recente » Cod sursa (job #1767142) | Cod sursa (job #935201) | Cod sursa (job #563716) | Cod sursa (job #1286901) | Cod sursa (job #2751051)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1e5 + 2;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
void dfs(int node, vector<int>& vis, vector<int> adj[]) {
vis[node] = 1;
for (auto neigh : adj[node]) {
if (vis[neigh] == 0) {
dfs(neigh, vis, adj);
}
}
}
int main() {
int N, M;
fin >> N >> M;
vector<int> adj[NMAX];
int i, x, y;
for (i = 1; i <= M; ++i) {
fin >> x >> y;
adj[x].push_back(y);
}
vector<int> vis(N + 1, 0);
int res = 0;
for (i = 1; i <= N; ++i) {
if (vis[i] == 0) {
res++;
dfs(i, vis, adj);
}
}
fout << res << "\n";
return 0;
}