Pagini recente » Cod sursa (job #2155014) | Cod sursa (job #344912) | Cod sursa (job #562046) | Cod sursa (job #2885649) | Cod sursa (job #896520)
Cod sursa(job #896520)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int N, M, i, j, rez=0;
vector<int> V[100005];
int VIZ[100005];
void solve(int now)
{
VIZ[now] = 1;
for(vector<int>::iterator it=V[now].begin();it!=V[now].end();++it)
if(!VIZ[*it])
solve(*it);
}
int main()
{
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
cin>>N>>M;
for(i=1;i<=M;++i)
{
int A, B;
scanf("%d %d", &A, &B);
V[A].push_back(B);
}
for(i=1;i<=N;++i)
if(!VIZ[i])
{
++rez;
solve(i);
}
cout<<rez<<"\n";
return 0;
}