Cod sursa(job #794229)

Utilizator igsifvevc avb igsi Data 5 octombrie 2012 23:23:14
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.53 kb
#include <stdio.h>

int g[100][100], n;

int main()
{
	int i, j, k;
	freopen("royfloyd.in", "r", stdin);
	freopen("royfloyd.out", "w", stdout);

    scanf("%d", &n);
	for(i = 0; i < n; ++i)
		for(j = 0; j < n; ++j)
			scanf("%d", &g[i][j]);

	for(k = 0; k < n; ++k)
		for(i = 0; i < n; ++i)
			for(j = 0; j < n; ++j)
				if(i != j && g[i][k] && g[k][j] &&(!g[i][j] || g[i][j] > g[i][k] + g[k][j])) g[i][j] = g[i][k] + g[k][j];

	for(i = 0; i < n; ++i)
	{
		for(j = 0; j < n; ++j)
			printf("%d ", g[i][j]);
		printf("\n");
	}

	return 0;
}