Cod sursa(job #662680)

Utilizator feelshiftFeelshift feelshift Data 16 ianuarie 2012 21:52:22
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
using namespace std;

const int MAXSIZE = 101;

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

int size;
int matrix[MAXSIZE][MAXSIZE];

int main()
{
	in >> size;

	for(int i=1;i<=size;i++)
		for(int k=1;k<=size;k++)
			in >> matrix[i][k];

	in.close();

	for(int k=1;k<=size;k++)
		for(int i=1;i<=size;i++)
			for(int j=1;j<=size;j++)
				if(matrix[i][k] && matrix[k][j] && i!=j && matrix[i][j] > matrix[i][k] + matrix[k][j])
					matrix[i][j] = matrix[i][k] + matrix[k][j];

	for(int i=1;i<=size;i++)
	{
		for(int k=1;k<=size;k++)
			out << matrix[i][k] << " ";
		out << "\n";
	}

	out.close();

	return (0);
}