Cod sursa(job #1018359)

Utilizator taigi100Cazacu Robert taigi100 Data 29 octombrie 2013 14:52:32
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
/*
          ~Keep It Simple!~
*/
#include<stdio.h>
int m[101][101],n;

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",&m[i][j]);

	for(int k=1;k<=n;k++)
	   for(int i=1;i<=n;i++)
		  for(int j=1;j<=n;j++)
              if( m[i][k] && m[k][j] )
				  if( m[i][j] > ( m[i][k]+m[k][j] ) || !m[i][j])
					  if(i != j)
					  m[i][j] = m[i][k]+m[k][j];

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

	return 0;
}