Pagini recente » Cod sursa (job #1420279) | Cod sursa (job #3195916) | Cod sursa (job #3031212) | Cod sursa (job #645249) | Cod sursa (job #363461)
Cod sursa(job #363461)
#include<cstdio>
#include<vector>
#include<deque>
#define N 100001
using namespace std;
vector<int> v[N];
int n,m,s,sol[N];
deque<int> q;
void bfs(int s)
{
int e;
sol[s]=1;
vector<int> ::iterator i;
q.push_back(s);
while (!q.empty())
{
e=q.front();
for (i=v[e].begin(); i!=v[e].end(); i++)
if (sol[*i]==0)
{
sol[*i]=1;
q.push_back(*i);
}
q.pop_front();
}
}
int main()
{
freopen ("dfs.in", "r", stdin);
freopen ("dfs.out", "w", stdout);
int x,y,cnt=0;
scanf ("%d %d", &n, &m);
for (int k=1; k<=m; k++)
{
scanf ("%d %d", &x, &y);
v[x].push_back(y);
}
for (int k=1; k<=n; k++)
{
if (sol[k]==0)
{
bfs(k);
cnt++;
}
}
printf ("%d", cnt);
return 0;
}