Cod sursa(job #385148)
Utilizator | Data | 22 ianuarie 2010 09:12:58 | |
---|---|---|---|
Problema | Parcurgere DFS - componente conexe | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.44 kb |
#include<iostream.h>
#include<fstream.h>
ifstream f("dfs.in");
ofstream g("dfs.out");
int i,viz[50],a[1000][1000],nr=1,n,m;
void citire(){
int i,j,k;
f>>n>>m;
while (f>>i>>j)
a[i][j]=a[j][i]=1;
}
void df(int x){
int i;
viz[x]=nr;
for (i=1;i<=n;i++)
if (a[i][x] && !viz[i])
df(i);
}
int main(){
citire();
for (i=1;i<=n;i++)
if (!viz[i])
{
nr++;
df(i);
}
g<<nr-1;
return 0;
}