Cod sursa(job #198909)

Utilizator nusmaibunkeleviprofesor cicalescu nusmaibunkelevi Data 15 iulie 2008 20:52:31
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include<stdio.h>

#define NMAX 100

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