Cod sursa(job #2899034)

Utilizator davidpalagniucDavid Palagniuc davidpalagniuc Data 7 mai 2022 16:08:12
Problema Floyd-Warshall/Roy-Floyd Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.4 kb
// royfloyd.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <fstream>

std::ifstream in("royfloyd.in");
std::ofstream out("royfloyd.out");

int n, d[101][101];

int main()
{
	in >> n;
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= n; j++)
			in >> d[i][j];
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= n; j++)
			for (int k = 1; k <= n; k++)
				if (i != j && d[i][k] != 0 && d[k][j] != 0)
				{
					if (d[i][j] == 0)
						d[i][j] = 2147483647;
					d[i][j] = std::min(d[i][j], d[i][k] + d[k][j]);
					if (d[i][j] == 2147483647)
						d[i][j] = 0;
				}

	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= n; j++)
		{
			out << d[i][j] << ' ';
		}
		out << '\n';
	}
	return 0;
}

// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu

// Tips for Getting Started: 
//   1. Use the Solution Explorer window to add/manage files
//   2. Use the Team Explorer window to connect to source control
//   3. Use the Output window to see build output and other messages
//   4. Use the Error List window to view errors
//   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
//   6. In the future, to open this project again, go to File > Open > Project and select the .sln file