Cod sursa(job #2514712)

Utilizator kokitchyAlastor kokitchy Data 26 decembrie 2019 17:55:11
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#include <algorithm>

#define INF 0x3f3f3f3f

int dist[100][100], g[100][100];

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

	int n;
	fin >> n;
	for (int i = 0; i < n; i++)
		for (int j = 0; j < n; j++) {
			fin >> g[i][j];
			if (g[i][j] == 0)
				dist[i][j] = INF;
			else
				dist[i][j] = g[i][j];
		}
	for (int k = 0; k < n; k++)
		for (int i = 0; i < n; i++)
			for (int j = 0; j < n; j++)
				if (i != j)
					dist[i][j] = std::min(dist[i][j], dist[i][k] + dist[k][j]);
	
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++)
			if (dist[i][j] == INF)
				fout << "0 ";
			else
				fout << dist[i][j] << " ";
		fout << "\n";
	}

	fin.close(), fout.close();

	return 0;
}