Cod sursa(job #642069)

Utilizator andreea29Iorga Andreea andreea29 Data 30 noiembrie 2011 15:44:04
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<cstdio>
using namespace std;
int d[1010][1010];
int main()
{
	int i, n, j, k,  l, m;
	freopen ("royfloyd.in", "r", stdin);
	freopen ("royfloyd.out", "w", stdout);
	scanf ("%d", &n);
	for (l=1; l<=n; l++)
		for (m=1; m<=n; m++)
		{
			scanf("%d", &d[l][m]);
			if (d[l][m]==0 && l!=m)
				d[l][m]=0x3f3f3f3f;
		}
		
	for (k=1; k<=n; k++)
		for (i=1; i<=n; i++)
			for (j=1; j<=n; j++)
				if (d[i][k]+d[k][j]<d[i][j])
					d[i][j]=d[i][k]+d[k][j];
				
	for (l=1; l<=n; l++)
	{	for (m=1; m<=n; m++)
		{
			if (d[l][m]==0x3f3f3f3f)
				printf ("0 ");
			else
				printf ("%d ", d[l][m]);
		}
	printf ("\n");
	}
	
	return 0;
}