Pagini recente » Cod sursa (job #2245309) | Cod sursa (job #1969020) | Cod sursa (job #513490) | Cod sursa (job #3270248) | Cod sursa (job #2782509)
#include <cstdio>
#include <vector>
void DFS(auto& visited, auto& list, int start)
{
visited[start] = true;
for(int v : list[start])
{
if(!visited[v])
{
DFS(visited, list, v);
}
}
}
int main()
{
int n, m;
std::scanf("%d%d", &n, &m);
std::vector<std::vector<int>> list(n + 1);
std::vector<char> visited(n + 1, false);
for(int i = 0; i < m; ++i)
{
int x, y;
std::scanf("%d%d", &x, &y);
list[x].push_back(y);
}
int res = 0;
for(int node = 1; node <= n; ++node)
{
if(!visited[node])
{
++res;
DFS(visited, list, node);
}
}
std::printf("%d\n", res);
}