Cod sursa(job #2776058)

Utilizator cezar_titianuTitianu Cezar cezar_titianu Data 18 septembrie 2021 15:48:39
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>

int mat[101][101];

int main() {
	std::ifstream fin("royfloyd.in");
	std::ofstream fout("royfloyd.out");
	int nrn;
	fin >> nrn;
	for (int index = 0; index < nrn; index++) {
		for (int index2 = 0; index2 < nrn; index2++) {
			fin >> mat[index][index2];
		}
	}
	for (int index = 0; index < nrn; index++) {
		for (int index2 = 0; index2 < nrn; index2++) {
			for (int index3 = 0; index3 < nrn; index3++) {
				if (index2 != index3 && mat[index2][index] && mat[index][index3] && (mat[index2][index] + mat[index][index3] < mat[index2][index3] || !mat[index2][index3])) {
					mat[index2][index3] = mat[index2][index] + mat[index][index3];
				}
			}
		}
	}
	for (int index = 0; index < nrn; index++) {
		for (int index2 = 0; index2 < nrn; index2++) {
			fout << mat[index][index2] << ' ';
		}
		fout << '\n';
	}
}