Cod sursa(job #562539)
| Utilizator | Data | 23 martie 2011 12:07:42 | |
|---|---|---|---|
| Problema | Parcurgere DFS - componente conexe | Scor | 50 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <fstream>
#include <bitset>
using namespace std;
#define dim 10001
char mat[dim][dim];
char v[dim];
int n;
void dfs(int nod)
{
if(!v[nod])
{
v[nod]=1;
for(int i=1;i<=n;++i)
if(mat[i][nod]&&!v[i])
dfs(i);
}
}
int main()
{
ifstream fin("dfs.in");
ofstream fout("dfs.out");
int m,i ,a ,b;
fin>>n >>m;
for(i=1;i<=m;++i)
{
fin>>a >>b;
mat[a][b]=1;
mat[b][a]=1;
}
int contor=0;
for(i=1;i<=n;++i)
{
if(v[i]==0)
{
++contor;
dfs(i);
}
}
fout<<contor;
return 0;
}