Pagini recente » Cod sursa (job #2162647) | Cod sursa (job #1980680) | Cod sursa (job #1231745) | Cod sursa (job #2109107) | Cod sursa (job #944960)
Cod sursa(job #944960)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
#define ech(It, A) for (__typeof(A.begin()) It = A.begin(); It != A.end(); ++It)
const int MAXN = 100001;
vector<vector<int> > adjl;
vector<int> component;
int color = 1;
void dfs(int idx) {
component[idx] = color;
ech(it, adjl[idx]) {
if (component[*it] == 0)
dfs(*it);
}
}
int main() {
ifstream fin("dfs.in");
ofstream fout("dfs.out");
int n, m;
fin >> n >> m;
adjl.resize(n+1);
component.resize(n+1);
for (int i = 0; i < m; ++i) {
int u, v;
fin >> u >> v;
adjl[u].push_back(v);
}
for (int i = 1; i <= n; ++i) {
if (component[i] == 0) {
dfs(i);
++color;
}
}
fout << color-1;
return 0;
}