Cod sursa(job #493733)

Utilizator iconiKMircea Chirea iconiK Data 19 octombrie 2010 10:12:22
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <algorithm>
#include <fstream>
#include <vector>

using namespace std;

void royfloyd()
{
	ifstream in("royfloyd.in");
	
	int N;
	in >> N;

	int m[101][101];

	for (int i = 1; i <= N; i++)
	{
		for (int j = 1; j <= N; j++)
		{
			in >> m[i][j];

			if (!m[i][j])
				m[i][j] = INT_MAX/2;
		}
	}

	for (int k = 1; k <= N; k++)
		for (int i = 1; i <= N; i++)
			for (int j = 1;j <= N; j++)
				if (i != j)
					m[i][j] = min(m[i][j], m[i][k] + m[k][j]);
	
	ofstream out("royfloyd.out");
	
	for (int i = 1; i <= N; i++)
	{
		for (int j = 1; j <= N; j++)
			out << (m[i][j] != INT_MAX/2 ? m[i][j] : 0) << ' ';

		out << '\n';
	}
}


int main()
{
	royfloyd();
}