Cod sursa(job #1311137)

Utilizator bilbor987Bogdan Pocol bilbor987 Data 7 ianuarie 2015 19:21:14
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<fstream>
#include<iostream>
#include<vector>
#include<queue>

#define NMAX 25

using namespace std;

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

bool used[NMAX];
int N, ordine[NMAX], k, conexe;
vector<int> G[NMAX]; //pt DFS


void Read()
{
	int M, x, y;
	fin>>N>>M;
	for(int i = 1; i <=M; i++)
	{
		fin>>x>>y;
		G[x].push_back(y);
		G[y].push_back(x);
	}
}

void DFS(int nod)
{
	used[nod] = 1;
	ordine[++k] = nod;
	for(size_t i = 0; i < G[nod].size(); i++)
	{
		int vec = G[nod][i];
		if(!used[vec])
			DFS(vec);
	}
}

int main()
{
	Read();
	for(int i = 1; i <= N; i++)
		if(!used[i])
		{

			conexe++;
			DFS(i);

		}
	fout<<conexe<<"\n";
	//for(int i = 1; i <= n; i++)
		//cout<<ordine[i]<<" ";
	return 0;
}