Cod sursa(job #628845)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 2 noiembrie 2011 11:13:38
Problema Parcurgere DFS - componente conexe Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <cstdio>
#include <vector>

using namespace std;

FILE *f,*s;

vector <int> v1[100005];

int v2[100005];

int i,j,k,l,m,n;

void Conex(int k)
{
	v2[k]=1;
	
	for(j=0;j<v1[k].size();j++)
	{
		if(!v2[v1[k][j]]) Conex(v1[k][j]);
	}	
}

int main()
{
	f=fopen("dfs.in","r");
	s=fopen("dfs.out","w");
	
	fscanf(f,"%d %d",&m,&n);
	
	for(i=1;i<=n;i++)
	{
		int a,b;
		
		fscanf(f,"%d %d",&a,&b);
		
		v1[a].push_back(b);
		v1[b].push_back(a);
	}	
	
	int rez=0;
	
	for(i=1;i<=m;i++) if(!v2[i]) { Conex(i); rez++; }
	
	fprintf(s,"%d",rez-1);
	
	fclose(s);
	
	return 0;
}