Cod sursa(job #1316861)
Utilizator | andrei Walrus21 | Data | 14 ianuarie 2015 11:32:32 |
---|---|---|---|
Problema | Parcurgere DFS - componente conexe | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.57 kb |
#include <stdio.h>
#include <vector>
#define mN 100001
using namespace std;
int i,N,M,X,Y,c; bool b[mN];
vector <int> v[mN];
void df(int vs)
{
for(int i=0;i<v[vs].size();i++)
if(!b[v[vs][i]]) {b[v[vs][i]]=1; df(v[vs][i]);}
}
int main()
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%d%d",&N,&M);
for(i=1;i<=M;i++)
{
scanf("%d%d",&X,&Y);
v[X].push_back(Y);
v[Y].push_back(X);
}
for(i=1;i<=N;i++)
if(!b[i]) {df(i); c++;}
printf("%d",c);
return 0;
}