Cod sursa(job #699916)

Utilizator darle.gheorgheDarle Gheorghe darle.gheorghe Data 29 februarie 2012 21:58:08
Problema Parcurgere DFS - componente conexe Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<stdio.h>
FILE *fin,*fout;
long viz[10000];
long a[10000][10000];
long n,m,x,y;
long nr;

int citire()
{
fscanf(fin,"%d%d",&n,&m);
while(m!=0)
{
fscanf(fin,"%d%d",&x,&y);
a[x][y]=a[y][x]=1;
m--;
}
}

int parcurg(int nod)
{
int i;
viz[nod]=1;
for(i=1;i<=n;i++)
	if(a[nod][i]==1 && viz[i]==0)
		parcurg(i);
}

int componente()
{
int i;
nr=1;
parcurg(1);
for(i=1;i<=n;i++)
	if(viz[i]==0)
	{
	nr++;
	parcurg(i);
	}
}

main()
{
fin = fopen("dfs.in","r");
fout = fopen("dfs.out","w");
citire();
componente();
fprintf(fout,"%d",nr);
fclose(fin);
fclose(fout);
}