Cod sursa(job #215679)
Utilizator | Data | 20 octombrie 2008 12:32:57 | |
---|---|---|---|
Problema | Parcurgere DFS - componente conexe | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
#include <iostream.h>
#include <fstream.h>
ifstream fin("dfs.in");
ofstream fout("dfs.out");
char v[1005];
long n,nc,m,i;
char a[1005][1005];
void dfs(int i)
{long j;
v[i]=1;
for (j=1;j<=n;j++)
if (v[j]==0 && a[i][j]==1)
dfs(j);
}
int main()
{long x,y;
fin>>n>>m;
for (i=1;i<=m;i++)
{fin>>x>>y;
a[x][y]=1;
a[y][x]=1;
}
for (i=1;i<=n;i++)
if (v[i]==0) {nc++; dfs(i);}
fout<<nc;
fout.close();
return 0;
}