Cod sursa(job #361296)

Utilizator BaduBadu Badu Badu Data 4 noiembrie 2009 15:54:22
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<stdio.h>
#define max 101

int A[max][max],n;

void data(){

	FILE *f=fopen("royfloyd.in","r");

	fscanf(f,"%d",&n);
	int i,j;

	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			fscanf(f,"%d",&A[i][j]);
}
	
int main(){

	FILE *g=fopen("royfloyd.out","w");

	data();

	int i,j,k;

	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++)
			fprintf(g,"%d ",A[i][j]);
		fprintf(g,"\n");
	}

	return 0;
}