Cod sursa(job #209929)

Utilizator sory1806Sandu Sorina-Gabriela sory1806 Data 25 septembrie 2008 17:17:45
Problema Parcurgere DFS - componente conexe Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<stdio.h>
#define max 1000
char a[max][max], c[max];
int n, m, i, j, x, y;
FILE *f, *g;

void read()
{	f=fopen("dfs.in", "r");
	fscanf(f, "%d%d", &n, &m);
	for(i=1; i<=m; i++)
	{	fscanf(f, "%d%d", &x, &y);
		a[x][y]=1; a[y][x]=1;
	}
	fclose(f);
}

int main()
{       int d[15000], k, p, u, ok=0;
	read();
	p=1; u=1; d[u]=1; c[1]=1; k=0;
	while(ok==0)
	{       while(p<=u)
		{       for(i=1; i<=n; i++)
			{	if(a[i][d[p]]==1 && c[i]==0)
				{	u++; d[u]=i; c[i]=1;
				}
			}
			p++;
		}
		ok=1; k++;
		for(i=1; i<=n; i++)
			if(c[i]==0)
			{       u++; d[u]=i; ok=0; c[i]=1;
				break;
			}
	}
	g=fopen("dfs.out", "w");
	fprintf(g, "%d", k);
	fclose(g);
	return 0;
}