Cod sursa(job #951079)

Utilizator tudorv96Tudor Varan tudorv96 Data 19 mai 2013 11:01:20
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
using namespace std;

#define in "royfloyd.in"
#define out "royfloyd.out"
#define N 105
#define oo 1 << 29

int a[N][N], n;

int main () {
	ifstream fin (in);
	fin >> n;
	for (int i = 1; i <= n; ++i)
		for (int j = 1; j <= n; ++j)
			fin >> a[i][j];
	fin.close();
	for (int k = 1; k <= n; ++k)
		for (int i = 1; i <= n; ++i)
			for (int j = 1; j <= n; ++j)
				if (i != j && a[i][k] && a[k][j] && (a[i][j] > a[i][k] + a[k][j] || !a[i][j]))
					a[i][j] = a[i][k] + a[k][j];
	ofstream fout (out);
	for (int i = 1; i <= n; ++i) {
		for (int j = 1; j <= n; ++j)
			fout << a[i][j] << " ";
		fout << "\n";
	}
	fout.close();
	return 0;
}