Cod sursa(job #1704176)

Utilizator alexalbu95Albu Alexandru alexalbu95 Data 18 mai 2016 11:10:05
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream f("royfloyd.in");
ofstream g("royfloyd.out");

int a[105][105];
int N;

int main()
{
	f >> N;
	for (int i = 1; i <= N; ++i) {
		for (int j = 1; j <= N; ++j) {
			f >> 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 (i != j) {
					if (a[i][k] && a[k][j] && (a[i][j] > a[i][k] + a[k][j] || !a[i][j]) && i!=j) {
						a[i][j] = a[i][k] + a[k][j];
					}
				}

	for (int i = 1; i <= N; ++i) {
		for (int j = 1; j <= N; ++j) {
			g << a[i][j] << " ";
		}
		g << "\n";
	}
	return 0;
}