Cod sursa(job #174108)

Utilizator corina23Ciobanu Corina corina23 Data 8 aprilie 2008 14:38:56
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<fstream.h>
#include<stdio.h>
long int n,mat[100][100];
//ifstream f("date.in");
//ofstream g("date.out");

int main()
{//f>>n>>m;
 freopen("royfloyd.in","rt",stdin);
 freopen("royfloyd.out","wt",stdout);
 scanf("%ld",&n);
 int i,j;
 for(i=1;i<=n;i++)
	for(j=1;j<=n;j++)
		{scanf("%ld",&mat[i][j]);
		 if(i!=j && mat[i][j]==0) mat[i][j]=250000;
		}

 //for(i=1;i<=n;i++)
 //	for(j=1;j<=n;j++)
 //		if(i!=j && mat[i][j]==0) mat[i][j]=32000;
 int k;
 for(k=1;k<=n;k++)
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			if(i!=k && j!=k && i!=j && mat[i][j]>(mat[i][k]+mat[k][j]))
				mat[i][j]=mat[i][k]+mat[k][j];
 for(i=1;i<=n;i++)
	{for(j=1;j<=n;j++)
		if(mat[i][j]<250000) printf("%ld ",mat[i][j]);
		else printf("0");
	 printf("\n");
	}
 return 0;
}