Cod sursa(job #1734051)

Utilizator alexandru.rusuRusu Alexandru alexandru.rusu Data 26 iulie 2016 13:26:01
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
using namespace std;

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

int main()
{
	int n;
	int distante[101][101];
	f >> n;
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			f >> distante[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 && distante[i][k] && distante[k][j] && 
					(distante[i][j] > distante[i][k] + distante[k][j] || distante[i][j]))
				{
					distante[i][j] = distante[i][k] + distante[k][j];
				}
			}
		}
	}

	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			g << distante[i][j] << ' ';
		}
		g << '\n';
	}
}