Cod sursa(job #1202239)

Utilizator vasile_pojogaPojoga Vasile vasile_pojoga Data 27 iunie 2014 13:39:52
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
#include <vector>
#include <cstring>

using namespace std;

ifstream fin("dfs.in");
ofstream fout("dfs.out");

int n,m;
vector<int> G[100005];
bool visited[100005];

void read();
int getNumberOfConexComponents();
void DFS(int nod);

int main()
{
	read();
	fout<<getNumberOfConexComponents();
	return 0;
}

void read()
{
	int a,b;
	fin>>n>>m;
	for(int i=0;i<m;i++)
	{
		fin>>a>>b;
		G[a].push_back(b);
		G[b].push_back(a);
	}
}

int getNumberOfConexComponents()
{
	int result = 0;	
	memset(visited,false,sizeof(visited));
	for(int i=1;i<=n;i++)
	{
		if(!visited[i])
		{
			result++;
			DFS(i);
		}
	}
	return result;
}

void DFS(int nod)
{
	visited[nod] = true;
	for(unsigned int i=0;i<G[nod].size();i++)
	{
		if(!visited[G[nod][i]])
		{
			DFS(G[nod][i]);
		}
	}
}