Cod sursa(job #2109791)

Utilizator k.bruenDan Cojocaru k.bruen Data 20 ianuarie 2018 09:56:45
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>

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

int matrice[100][100];
int n;

int main() {
	in >> n;
	for (int i = 0; i < n; ++i) {
		for (int j = 0; j < n; ++j) {
			in >> matrice[i][j];
		}
	}

	for (int k = 0; k < n; ++k) {
		for (int i = 0; i < n; ++i) {
			for (int j = 0; j < n; ++j) {
				if (matrice[i][k] + matrice[k][j] < matrice[i][j] && matrice[i][k] != 0 && matrice[k][j] != 0 && i != j) {
					matrice[i][j] = matrice[i][k] + matrice[k][j];
				}
			}
		}
	}

	for (int i = 0; i < n; ++i) {
		for (int j = 0; j < n; ++j) {
			out << matrice[i][j] << ' ';
		}
		out << '\n';
	}

	return 0;
}