Cod sursa(job #172795)

Utilizator slayer4uVictor Popescu slayer4u Data 6 aprilie 2008 19:27:23
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <stdio.h>

long s, n, i, j, k, x[200][200];

int main()
{
	freopen("royfloyd.in", "rt", stdin);
	freopen("royfloyd.out", "wt", stdout);

	scanf("%ld", &n);
	for (i = 1; i <= n; ++i)
		for (j = 1; j <= n; ++j)
			scanf("%ld", &x[i][j]);
	s = 0;
			for (k = 1; k <= n; ++k)
	for (i = 1; i <= n; ++i)
		for (j = 1; j <= n; ++j)
			
				if (x[i][k] && x[k][j] && (x[i][k] + x[k][j] < x[i][j] || !x[i][j]) && i != j)
					x[i][j] = x[i][k] + x[k][j];

	for (i = 1; i <= n; ++i) 
	{
		for (j = 1; j <= n; ++j)
			printf("%ld ", x[i][j]);
		printf("\n");
	}

	return 0;
}