Cod sursa(job #416690)

Utilizator cosmyoPaunel Cosmin cosmyo Data 13 martie 2010 11:38:29
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<fstream>
#include<list>
#define NMAX 100005
#define in ifstream fin("dfs.in")
#define out ofstream fout("dfs.out")
using namespace std;
typedef list<long> LI;
typedef LI::iterator IT;
LI L[NMAX];
long v[NMAX],n,m;
void cit()
{in;
 int x,y;
 fin>>n>>m;
  for(;m;--m)
   {fin>>x>>y;
     L[x].push_back(y);
	 L[y].push_back(x);
   }
 fin.close();
}
void df(long k,long p)
{IT it;
 v[k]=p;
 for(it=L[k].begin();it!=L[k].end();++it)
	 if(v[*it]==0)
	  df(*it,p);
}
void afis()
{out;
 IT it;
 long i,p=0;
  for(i=1;i<=n;++i)
    if(v[i]==0)
	{p++;
     df(i,p);
	}
  fout<<p;	
 fout.close();
}
int main()
{cit();
 afis();
 return 0;
}