Cod sursa(job #1089020)

Utilizator techLaurentiu Avasiloaie tech Data 21 ianuarie 2014 09:28:09
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>

using namespace std;

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

short int n , matr[102][102] , i , j , k ;

int main ()
{
	fin >> n ;
	
	for ( i = 1 ; i <= n ; i ++ )
	{
		for ( j = 1 ; j <= n ; j ++ )
		{
			fin >> matr[i][j] ;
		}
	}
	
	for ( k = 1 ; k <= n ; k ++ )
	{
		for ( i = 1 ; i <= n ; i ++ )
		{
			for ( j = 1 ; j <= n ; j ++ )
			{
				if ( ( matr[i][j] > matr[i][k] + matr[k][j] || matr[i][j] == 0 ) && matr[i][k] != 0 && matr[k][j] != 0 && i != j )
				{
					matr[i][j] = matr[i][k] + matr[k][j] ;
				}
			}
		}
	}
	
	for ( i = 1 ; i <= n ; i ++ )
	{
		for ( j = 1 ; j <= n ; j ++ )
		{
			fout << matr[i][j] ;
		}
	}
	
	return 0 ;
}