Pagini recente » Cod sursa (job #2076137) | Cod sursa (job #1546246) | Cod sursa (job #831889) | Istoria paginii runda/trainingtime/clasament | Cod sursa (job #2168876)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
unsigned int N, M, compConexe;
unsigned const int NMAX = 100005;
vector<unsigned int> muchii[NMAX];
bool vizitat[NMAX]{false};
ifstream fin("dfs.in");
ofstream fout("dfs.out");
void DFS(unsigned int nod)
{
vizitat[nod] = true;
for(unsigned int i = 0; i < muchii[nod].size(); i++)
{
unsigned int Vecin = muchii[nod][i];
if(!vizitat[Vecin])
DFS(Vecin);
}
}
int main()
{
fin >> N >> M;
for(unsigned int i = 0; i < M; i++)
{
unsigned int X, Y;
fin >> X >> Y;
muchii[X].push_back(Y);
}
fin.close();
for(unsigned int i = 0; i < N; i++)
{
if(!vizitat[i])
{
compConexe++;
DFS(i);
}
}
fout << compConexe;
fout.close();
return 0;
}