Cod sursa(job #628959)

Utilizator d.andreiDiaconeasa Andrei d.andrei Data 2 noiembrie 2011 14:46:21
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <cstdio>

#define file_in "royfloyd.in"
#define file_out "royfloyd.out"

int i,j,k,n,a[111][111];

int main(){
	
	freopen(file_in,"r",stdin);
	freopen(file_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 (a[i][k] && a[k][j] && (a[i][j]>a[i][k]+a[k][j] || !a[i][j]) && 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;
	
}