Pagini recente » Monitorul de evaluare | Cod sursa (job #2691714) | Istoria paginii runda/iconcurs4 | Profil StarGold2 | Cod sursa (job #1438069)
#include <fstream>
#include <iostream>
#include <vector>
std::vector < std::vector <int> > adiacenta;
std::vector < bool > vizitat;
int n, m;
void DFS(int nod)
{
vizitat[nod] = true;
for (int i = 0; i < adiacenta[nod].size(); i++)
{
if (vizitat[adiacenta[nod][i]] == false)
{
DFS(adiacenta[nod][i]);
}
}
}
int main()
{
std::ifstream f("dfs.in");
std::ofstream g("dfs.out");
f >> n >> m;
adiacenta.resize(n + 1);
vizitat.resize(n + 1, false);
int x, y;
for (int i = 1; i <= m; i++)
{
f >> x >> y;
adiacenta[x].push_back(y);
}
int contor = 0;
for (int i = 1; i <= n; i++)
{
if (vizitat[i] == false)
{
contor++;
DFS(i);
}
}
g << contor;
return 0;
}