Cod sursa(job #1181958)

Utilizator toncuvasileToncu Vasile toncuvasile Data 4 mai 2014 12:56:14
Problema Parcurgere DFS - componente conexe Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
//Arbore partial de cost minim. Algoritmul Kruskal.
//Implementarea utilizind Matricea de Adiacenta.
#include <fstream>
using namespace std;

int A[10005][10005], viz[10005];
int n,m;

ifstream inFile("dfs.in");
ofstream outFile("dfs.out");

void Read()  
{
	//Citim Graful
	//n - Numarul de noduri, variabila globala;
	//m - Numarul de Arce Neorinetate, variabila globala;
	//A[][] - Matricea de Adiacenta, variabila globala;
	inFile >> n >> m;
	int x,y;
	for(int i=1; i<=m; i++){
		inFile >> x >> y;
		A[x][y]=A[y][x]=1;
	}
}

void DFS(int i)
{
	viz[i]=1;
	for(int j=1;j<=n;j++){
		if(A[i][j] && !viz[j]){
			DFS(j);
		}
	}
}

int main()
{
	Read();
	int ct=0;  //Numarul de Componente Conexe Distincte;
	for(int i=1;i<=n;i++){
		if(!viz[i]){
			ct++;
			DFS(i); //Incepem "sondarea" din nodul i;
		}
	}
	outFile << ct;
	return 0;
}