Cod sursa(job #1925458)

Utilizator oanaroscaOana Rosca oanarosca Data 13 martie 2017 11:17:21
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>

using namespace std;

int n, m[101][101];

void royfloyd () {
	int k, i, j;
	for (k = 1; k <= n; k++)
		for (i = 1; i <= n; i++)
			for (j = 1; j <= n; j++)
				if (i != j and m[i][k] and m[k][j] and (!m[i][j] or m[i][j] > m[i][k]+m[k][j]))
					m[i][j] = m[i][k]+m[k][j];
}

int main () {
	ifstream fi("royfloyd.in");
	ofstream fo("royfloyd.out");
	fi >> n;
	for (int l = 1; l <= n; l++)
		for (int c = 1; c <= n; c++)
			fi >> m[l][c];
	royfloyd();
	for (int l = 1; l <= n; l++) {
		for (int c = 1; c <= n; c++)
			fo << m[l][c] << ' ';
		fo << '\n';
	}
	return 0;
}