Cod sursa(job #236905)

Utilizator eugen.nodeaEugen Nodea eugen.nodea Data 28 decembrie 2008 18:31:04
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
# include <stdio.h>
int n, a[105][105]; 
int main(){
  int i, j,k;   
  freopen("royfloyd.in", "r", stdin);   
  freopen("royfloyd.out", "w", stdout);

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

  for (k=1;k<=n;k++)
     for (i=1;i<=n;i++)
	for (j=1;j<=n;j++)
	     if (i!=j)
               if (a[i][k] && a[k][j] && (a[i][j]>a[i][k]+a[k][j] || !a[i][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("\n");
  }
  return 0;
}