Cod sursa(job #1705821)

Utilizator monicalegendaLegenda Monica monicalegenda Data 20 mai 2016 23:50:58
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
# include <iostream>
# include <fstream>
# include <limits.h>
# include <algorithm>

# define NMAX 105
# define INF (INT_MAX - 1000)

int main () {
	std::ifstream fin("royfloyd.in");
	std::ofstream fout("royfloyd.out");

	int n, i, j, k, d[NMAX][NMAX];
	fin >> n;
	for (i = 1; i <= n; i++) {
		for (j = 1; j <= n; j++) {
			fin >> d[i][j];
			if (i != j && d[i][j] == 0) {
				d[i][j] = INF;
			}
		}
	}

	for (k = 1; k <= n; k++) {
		for (i = 1; i <= n; i++) {
			for (j = 1; j <= n; j++) {
				d[i][j] = std::min(d[i][j], d[i][k] + d[k][j]);
			}
		}
	}

	for (i = 1; i <= n; i++) {
		for (j = 1; j <= n; j++) {
			if (d[i][j] == INF) {
				d[i][j] = 0;
			}
			fout << d[i][j] << ' ';
		}
		fout << '\n';
	}

	return 0;
}