Cod sursa(job #634854)

Utilizator marius135Dumitran Adrian Marius marius135 Data 17 noiembrie 2011 18:20:05
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream> 
#include<vector>
#include<iterator>
#include<stdio.h>
using namespace std;


vector<int> lista[100];       
int sel[100];
 
void df(int k)
{
sel[k]=1; // marcam ca vizitat
cout<<k<<" ";
    
for(int i = 0; i < lista[k].size(); i++)
  if(sel[ lista[k][i] ]==0 )
 
    df(lista[k][i]);
  

}



int main() 
{  int j,n,k,fiu,nrf;
  
  freopen("dfs.in","r",stdin);
  freopen("dfs.out","w",stdout);
  cin>>n>>m; //"nr noduri:";
  
//  for(k=1;k<=n;k++)
//  sel[k]=0;
  
	cin>>n >> m; //"nr noduri:";
  
  for(k=1;k<=m;k++) {
	  cin>>a>>b;
	  lista[a].push_back(b);
	  lista[b].push_back(a);
  }
 
      for(k=1;k<=n;k++) {
	  /*cout<<k<<": ";
	  for( int j = 0; j < lista[k].size(); ++j)
		  cout<<lista[k][j]<<" ";
	 
	  cout<<endl; */
   } 
    
  
  int nr = 0;
  for(j=1;j<=n;j++)
	  if(sel[j]==0){  df(j); nr++;}
  cout<<nr;
/*
 cout<<endl<<endl;
  for(k=1;k<=n;k++)
	  cout<<sel[k]<<" ";*/
}