Cod sursa(job #165215)

Utilizator savimSerban Andrei Stan savim Data 25 martie 2008 18:10:50
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <stdio.h>
#define inf 2147000000
int c[110][110];
int n,i,j,k;
int main()
{
	freopen("royfloyd.in","r",stdin);
	freopen("royfloyd.out","w",stdout);

	scanf("%d ",&n);
	for (i=1; i<=n; i++)
		for (j=1; j<=n; j++)
		{
			scanf("%d",&c[i][j]);
			if (c[i][j]==0 && i!=j) c[i][j]=inf;
		}
	for (k=1; k<=n; k++)
		for (i=1; i<=n; i++)
			if (i!=k)
			for (j=1; j<=n; j++)
				if (j!=k && j!=i && c[i][k]!=0 && c[k][j]!=0)
				if (c[i][k]+c[k][j]<c[i][j]) c[i][j]=c[i][k]+c[k][j];

	for (i=1; i<=n; i++)
	{
		for (j=1; j<=n; j++)
			if (c[i][j]!=inf)	printf("%d ",c[i][j]);
			else printf("0 ");
		printf("\n");
	}
	return 0;
}