Cod sursa(job #1011409)

Utilizator drobertDumitru Robert drobert Data 16 octombrie 2013 20:21:45
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 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[ j ][ k ] )
				array[ i ][ j ] = ( array[ i ][ j ]<( array[ i ][ k ] + array[ k ][ 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;
}