Cod sursa(job #160661)

Utilizator marinaMarina Horlescu marina Data 16 martie 2008 15:40:17
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
//Roy-Floyd/Floyd-Warshall
#include <stdio.h>
#define INPUT "royfloyd.in"
#define OUTPUT "royfloyd.out"
#define NMAX 101

int N;
int a[NMAX][NMAX];

int main()
{
	freopen(INPUT, "r", stdin);
	freopen(OUTPUT, "w", stdout);
	
	scanf("%d", &N);
	int i, j;
	for(i = 1; i <= N; ++i)
		for(j = 1; j <= N; ++j)
			scanf("%d", &a[i][j]);
	
	int k;
	for(k = 1; k <= N; ++k)
		for(i = 1; i <= N; ++i)
			for(j = 1; j <= N; ++j)
				if(a[i][j] > a[i][k] + a[k][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("%d\n", a[i][N]);
	}
	return 0;
}