Cod sursa(job #773676)

Utilizator roots4Irimia Alexandru Gabriel roots4 Data 2 august 2012 12:59:50
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include<stdio.h>
#define dim 110

int i,j,n,k,V[dim][dim];

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

void read(){
	fscanf(f,"%d",&n);
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			fscanf(f,"%d",&V[i][j]);
}

int main(){
	
	read();
	
	for(k=1;k<=n;k++)
		for(i=1;i<=n;i++)
			for(j=1;j<=n;j++)
				if( i!=j&&V[i][k] && V[k][j] &&  ((V[i][k]+V[k][j]) < V[i][j] || V[i][j]==0)  )
					V[i][j]=V[i][k]+V[k][j];
	
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++)
			fprintf(g,"%d ",V[i][j]);
		fprintf(g,"\n");
	}
	
	return 0;
}