Cod sursa(job #279732)

Utilizator marcel9105Marcel Grec marcel9105 Data 12 martie 2009 22:38:52
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<fstream>
using namespace std;

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

int a[100][100], i, j, k, n;

int main()
{
	fi >> n;
	for( i = 1; i <= n; i++ )
		for( j = 1; j <= n; j++ )
			fi >> a[i][j];
		
	for( k = 1; k <= n; k++ )
		for( i = 1; i <= n; i++ )
			for( j = 1; j <= n; j++ )
				if( a[i][k] && a[k][j] && i!=j && ( a[i][j] > a[i][k] + a[k][j] || !a[i][j] ) )
					a[i][j] = a[i][k] + a[k][j];
	
	for( i = 1; i <= n; i++ )
	{
		for( j = 1; j <= n; j++ )
			fo << a[i][j] << ' ';			
		fo << '\n';
	}
	
	fo.close();
	fi.close();
	return 0;
}