Cod sursa(job #582041)

Utilizator mihai995mihai995 mihai995 Data 14 aprilie 2011 20:19:01
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <fstream>
using namespace std;

const int N=100;
int v[N][N],n;

ifstream in("royfloyd.in");
ofstream out("royfloyd.out");

inline bool better(int x,int y,int z)
{
	return x && y && ( !z || x+y < z );
}

int main()
{
	int i,j,k;
	in>>n;
	for (i=1;i<=n;i++)
		for (j=1;j<=n;j++)
			in>>v[i][j];
	for (k=1;k<=n;k++)
		for (i=1;i<=n;i++)
			for (j=1;j<=n;j++)
				if (i!=j && better(v[i][k],v[k][j],v[i][j]))
					v[i][j]=v[i][k]+v[k][j];
	for (i=1;i<=n;i++,out<<"\n")
		for (j=1;j<=n;j++)
			out<<v[i][j]<<" ";
	return 0;
}