Cod sursa(job #2673131)

Utilizator gavra_bogdanBogdan Gavra gavra_bogdan Data 15 noiembrie 2020 20:18:21
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>

const int nmax = 105;

int v[nmax][nmax];

int main() {
	std::ifstream fin("royfloyd.in");
	std::ofstream fout("royfloyd.out");
	int n;
	fin >> n;
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= n; j++)
			fin >> v[i][j];
	for (int k = 1; k <= n; k++)
		for (int i = 1; i <= n; i++)
			for (int j = 1; j <= n; j++)
				if (v[i][k] and v[k][j] and i != j and (v[i][k] + v[k][j] < v[i][j] or !v[i][j]))
					v[i][j] = v[i][k] + v[k][j];
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) fout << v[i][j] << " ";
		fout << "\n";
	}
}