Cod sursa(job #585891)

Utilizator ms-ninjacristescu liviu ms-ninja Data 30 aprilie 2011 12:29:40
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
using namespace std;
#define dim 101
int v[dim][dim];

int main()
{
	ifstream fin("royfloyd.in");
	ofstream fout("royfloyd.out");
	
	int i, j, a, b,k,n;
	
	fin>>n;
	
	for(i=1;i<=n;++i)
			for(j=1;j<=n;++j)
				fin>>v[i][j];
			
		for(k=1;k<=n;++k)	
			for(i=1;i<=n;++i)
				for(j=1;j<=n;++j)
						if(v[i][k] && v[k][j] && (v[i][j]>v[i][k]+v[k][j] || !v[i][j]) && i!=j)
							v[i][j]=v[i][k]+v[k][j];
						
	for(i=1;i<=n;++i)
	{
		for(j=1;j<=n;++j)
				fout<<v[i][j] <<" ";
		fout<<'\n';
	}
	return 0;
}