Cod sursa(job #803444)

Utilizator ichigo2908mantu radu ichigo2908 Data 27 octombrie 2012 16:38:05
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>
#include <vector>
//#include <iostream>
using namespace std;

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

const int N=100001;
vector<int> a[N];
bool conf[N];
int n;

void citire()
{
	int m, x, y;
	in>>n>>m;
	for(int i=1;i<=m;i++)
	{
		in>>x>>y;
		a[x].push_back(y);
		a[y].push_back(x);
	}
}

void nr_comp(size_t x)
{
	conf[x] = 1;;
	size_t y;
	for(size_t i=0;i<a[x].size();i++)
	{
		y=a[x][i];
		if(!conf[y])
		{
			//conf[y]=1;
			nr_comp(y);
		}
	}
}
/*
void scrie()
{
	for(int i=1;i<=n;i++)
		cout<<conf[i];
	cout<<"\n";
}
*/
int main()
{
	int cont_f=0;
	citire();
	for(int i=1;i<=n;i++)
	{	
		if(!conf[i])
		{
			//conf[i]=1;
			nr_comp(i);
			cont_f++;
			//scrie();
		}
	}
	out<<cont_f;
	
	in.close();
	out.close();
	
	return 0;
}