Pagini recente » Cod sursa (job #1269112) | Cod sursa (job #356633)
Cod sursa(job #356633)
#include <iostream.h>
#include <fstream.h>
#include <vector>
#define nmax 100005
using namespace std;
vector<int> G[nmax];
int N,M,mar[nmax],nrcc;
void citire()
{freopen("dfs.in","r",stdin);
int i,a,b;scanf("%d %d",&N,&M);
for(i=1;i<=M;i++)
{scanf("%d %d",&a,&b);G[a].push_back(b);}
fclose(stdin);
}
void DFS(int nod)
{int j;vector<int>::iterator it;
if(!mar[nod])
{mar[nod]=1;
for(it=G[nod].begin();it!=G[nod].end();it++)
DFS(*it);
}
}
void rezolva()
{int i;
for(i=1;i<=N;i++)
if(!mar[i]) {nrcc++;DFS(i);}
}
void scrie()
{freopen("dfs.out","w",stdout);
printf("%d",nrcc);
fclose(stdout);
}
int main()
{citire();
rezolva();
scrie();
return 0;
}