Cod sursa(job #936434)

Utilizator forgetHow Si Yu forget Data 7 aprilie 2013 05:46:46
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
using namespace std;

int main() {
	ifstream fin("royfloyd.in");
	ofstream fout("royfloyd.out");
	const int inf = 1e6;
	int n; fin >> n;
	int a[n][n];
	for (int i = 0; i < n; ++i) {
		for (int j = 0; j < n; ++j) {
			fin >> a[i][j];
			if (i != j && a[i][j] == 0) a[i][j] = inf;
		}
	}

	for (int k = 0; k < n; ++k)
		for (int i = 0; i < n; ++i)
			for (int j = 0; j < n; ++j)
				a[i][j] = min(a[i][j], a[i][k]+a[k][j]);

   for (int	i = 0; i < n; ++i) {
	   for (int j = 0; j < n; ++j) {
		   if (a[i][j] >= inf) a[i][j] = 0;
		   fout << a[i][j] << ' ';
	   }
	   fout << '\n';
	}
	return 0;
}