Cod sursa(job #1713360)

Utilizator ThalorynIonut Duduc Thaloryn Data 5 iunie 2016 13:35:14
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
using namespace std;

#define MAX 101

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

int N;

void Floyd_Warshall(int D[MAX][MAX]) {

	for (int k = 1; k <= N; ++k)
		for (int i = 1; i <= N; ++i)
			for (int j = 1; j <= N; ++j)
				if (D[i][k] && D[k][j] && (D[i][k] + D[k][j] < D[i][j] || D[i][j] == 0 && i != j))
					D[i][j] = D[i][k] + D[k][j];

	for (int i = 1; i <= N; ++i) {
		for (int j = 1; j <= N; ++j)
			out << D[i][j] << " ";
		out << endl;
	}
}

int main()
{	
	in >> N;
	int D[MAX][MAX];

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

	Floyd_Warshall(D);

	return 0;
}