Cod sursa(job #698097)

Utilizator bocacristiBoca Nelu Cristian bocacristi Data 29 februarie 2012 12:23:09
Problema Parcurgere DFS - componente conexe Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
#include <vector>
using namespace std;

ifstream fin("dfs.in");
ofstream fout("dfs.out");
typedef vector<int> VI;

VI g[100001];
int n, m;
int v[100000];
int cp;

void citire();
void DF(int nod);

int main()
{
	citire();
	for ( int i = 1; i <= n; ++i )
		if ( v[i] == 0 )
			DF(i), cp++;
	fout << cp;
}

void citire()
{
	fin >> n >> m;
	int a, b;
	for ( ; m; --m )
	{
		fin >> a >> b;
		g[a].push_back(b);
		g[b].push_back(a);
	}
}

void DF(int nod)
{
	v[nod] = 1;
	for ( VI::iterator it = g[nod].begin(); it != g[nod].end(); ++it )
		if ( v[*it] == 0 )
			DF(*it);
}