Pagini recente » Cod sursa (job #2568517) | Cod sursa (job #1830175) | Cod sursa (job #1681955) | Cod sursa (job #1181659) | Cod sursa (job #2035336)
#include <fstream>
#include <vector>
#include <iostream>
using namespace std;
ifstream fin ("dfs.in");
ofstream fout("dfs.out");
const int N_MAX = 100005;
vector<int> AD[N_MAX];
bool disc[N_MAX];
int con = 0;
void dfs (int root) {
disc[root] = 1;
for (vector<int>::iterator it = AD[root].begin(); it != AD[root].end(); it++) {
if (!disc[*it]) {
dfs(*it);
}
}
}
int main()
{
int n, m;
fin >> n >> m;
for (int i=1; i <= m; i++) {
int from, to;
fin >> from >> to;
AD[from].push_back(to);
}
for (int i=1; i <= n; i++) {
if (!disc[i]) {
dfs(i);
con++;
}
}
fout << con;
return 0;
}