Pagini recente » Cod sursa (job #2836551) | Cod sursa (job #1459419) | Cod sursa (job #1060325) | Cod sursa (job #1468998) | Cod sursa (job #2792770)
#include <fstream>
#include <vector>
using namespace std;
#define NMAX 100000
#define MMAX 200000
vector<int> v[NMAX];
int f[NMAX + 1], ans[NMAX + 1];
int vx[MMAX + 1];
void DFS( int node ) {
for ( auto copil : v[node] ) {
f[copil]++;
if ( f[copil] == 1 ) {
ans[copil] = 1;
DFS(copil);
}
f[copil]--;
}
}
ifstream cin ("dfs.in");
ofstream cout ("dfs.out");
int main() {
int n, m, i, x, y, cnt;
cin >> n >> m;
for ( i = 0; i < m; i++ ) {
cin >> x >> y;
vx[i] = x;
v[x].push_back(y);
}
for ( i = 0; i < m; i++ ) {
DFS(vx[i]);
}
cnt = 0;
for ( i = 0; i < n; i++ ) {
cnt += ans[i];
}
cout << cnt << "\n";
return 0;
}