Cod sursa(job #231998)

Utilizator cotofanaCotofana Cristian cotofana Data 14 decembrie 2008 16:23:55
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <stdio.h>
#define dim 100

int n, a[dim+1][dim+1];

int main()
{
	int i, j, k;
	freopen("royfloyd.in", "r", stdin);
	freopen("royfloyd.out", "w", stdout);
	scanf("%d\n", &n);
	for (i=1; i<=n; i++)
		for (j=1; j<=n; j++) scanf("%d ", &a[i][j]);
	for (k=1; k<=n; k++)
		for (i=1; i<=n; i++)
			for (j=1; j<=n; j++)
				if (a[i][k] && a[k][j] && (a[i][k]+a[k][j]<a[i][j] || !a[i][j]) && i!=j) a[i][j]=a[i][k]+a[k][j];
	for (i=1; i<=n; i++)
	{
		for (j=1; j<=n; j++) printf("%d ", a[i][j]);
		printf("\n");
	}
	return 0;
}