Cod sursa(job #921769)

Utilizator kitzTimofte Bogdan kitz Data 21 martie 2013 13:02:59
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include<fstream>
std::ifstream file_in ("royfloyd.in");
std::ofstream file_out ("royfloyd.out");
int num_nodes, cost_matrix[101][101];
int main()
{
	file_in >> num_nodes;
	for(int i = 1; i <= num_nodes; i++)
		 for(int j=1;j<=num_nodes;j++) 
			 file_in >> cost_matrix[i][j];
	for(int k = 1; k <= num_nodes; k++)
		for(int i = 1; i <= num_nodes;i++)
			for(int j = 1;j <= num_nodes; j++) 
				if (cost_matrix[i][k] && cost_matrix[k][j] )
					if((cost_matrix[i][j] > cost_matrix[i][k] + cost_matrix[k][j] || !cost_matrix[i][j]) && i != j) 
						cost_matrix[i][j] = cost_matrix[i][k] + cost_matrix[k][j];
	for(int i = 1; i <= num_nodes; i++)
    {
		for(int j = 1; j <= num_nodes; j++) file_out << cost_matrix[i][j] << " ";
		file_out << "\n";
    }
	file_out.close();
return 0;
}