Cod sursa(job #795701)

Utilizator Coman95coman cosmin Coman95 Data 9 octombrie 2012 14:53:44
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
using namespace std;

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

int a[101][101];
int n;

void RoyFloyd();

int main()
{
	fin >> n;
	for( int i = 1; i <= n; ++i )
		for( int j = 1; j <= n; ++j )
			fin >> a[i][j];
	RoyFloyd();
	for( int i = 1; i <= n; ++i )
	{
		for( int j = 1; j <= n; ++j )
			fout << a[i][j] << ' ';
		fout << '\n';
	}
	fin.close();
	fout.close();
	return 0;
}

void RoyFloyd()
{
	for( int k = 1; k <= n; ++k )
		for( int i = 1; i <= n; ++i )
			for( int j = 1; j<= n; ++j )
				if( a[i][j] > a[i][k] + a[k][j] )
					a[i][j] = a[i][k] + a[k][j];
}