Cod sursa(job #149418)

Utilizator radamiRadu Patulescu radami Data 5 martie 2008 18:24:04
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <stdio.h>

int mat[110][110],n;

int min (int a,int b)
{
	if (a < b)
		return a;
	return b;
	
}

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