Cod sursa(job #712301)

Utilizator costyv87Vlad Costin costyv87 Data 13 martie 2012 11:58:22
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <cstdio>
FILE *f,*g;
int n,i,j,k;
int sol[110][110];

int main() {
f=fopen("royfloyd.in","r");
g=fopen("royfloyd.out","w");

fscanf(f,"%d",&n);

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

for (k=1;k<=n;k++) 
	for (i=1;i<=n;i++)
		for (j=1;j<=n;j++) 
			if (i!=j && sol[i][k]>0 && sol[k][j]>0) 
				if (sol[i][j]>sol[i][k]+sol[k][j] || sol[i][j]==0) 
					sol[i][j]=sol[i][k]+sol[k][j];

for (i=1;i<=n;i++,fprintf(g,"\n"))
	for (j=1;j<=n;j++)
		fprintf(g,"%d ",sol[i][j]);

fclose(g);
return 0;
}