Cod sursa(job #712291)

Utilizator costyv87Vlad Costin costyv87 Data 13 martie 2012 11:47:23
Problema Floyd-Warshall/Roy-Floyd Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <cstdio>
FILE *f,*g;
int n,i,j,k;
int d[110][110], 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",&d[i][j]);
		sol[i][j]=d[i][j];
		}

for (k=1;k<=n;k++) 
	for (i=1;i<=n;i++)
		for (j=1;j<=n;j++) 
			if (i!=j && d[i][k]>0 && d[k][j]>0) 
				if (sol[i][j]>d[i][k]+d[k][j] || sol[i][j]==0) 
					sol[i][j]=d[i][k]+d[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;
}