Cod sursa(job #1011416)

Utilizator drobertDumitru Robert drobert Data 16 octombrie 2013 20:24:41
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
using namespace std;
ifstream cin( "royfloyd.in" );
ofstream cout( "royfloyd.out" );

int n, array[ 101 ][ 101 ];
int main()
{
	int i, j, k;
	cin >> n;
	for ( i = 1; i <= n; i++ )
		for ( j = 1; j <= n; j++ )
			cin >> array[ i ][ j ];
	for ( k = 1; k <= n; k++ )
		for ( i = 1; i <= n ;i++ )
			for ( j = 1; j <= n; j++ )
				if (array[ i ][ k ] && array[ k ][ j ] && (array[ i ][ j ] > array[ i ][ k ] + array[ k ][ j ] || !array[ i ][ j ]) && i != j)
					array[ i ][ j ] = array[ i ][ k ] + array[ k ][ j ];
	for ( i = 1; i <= n; i++ )
	{
		for ( j = 1; j <= n; j++ )
			cout << array[ i ][ j ] << " ";
		cout << '\n';
	}
	cin.close();
	cout.close();
	return 0;
}