Cod sursa(job #2198665)

Utilizator aurelionutAurel Popa aurelionut Data 24 aprilie 2018 23:33:14
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>

using namespace std;

const int DIM = 110;
int n, a[DIM][DIM];

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