Pagini recente » Cod sursa (job #571218) | Cod sursa (job #990578) | Cod sursa (job #181558) | Cod sursa (job #1255227) | Cod sursa (job #2036495)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("dfs.in");
ofstream out("dfs.out");
void DFS(vector<vector<int>> G, int node, vector<bool>& visited)
{
visited[node] = true;
for (auto it = G[node].begin(); it != G[node].end(); it++)
{
if (!visited[*it])
DFS(G, *it, visited);
}
}
int main()
{
int N, M;
in >> N >> M;
vector<vector<int>> G(N, vector<int>());
for (int i = 0; i < M; i++)
{
int u, v;
in >> u >> v;
u--; v--;
G[u].push_back(v);
}
vector<bool> visited(N, false);
int count = 0;
for (int i = 0; i < N; i++)
{
if (!visited[i])
{
count++;
DFS(G, i, visited);
}
}
out << count;
}