Cod sursa(job #2402901)

Utilizator alex2209alexPavel Alexandru alex2209alex Data 11 aprilie 2019 09:20:41
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.09 kb
#include <fstream>

using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
//------------------------------------------
//Valori globale
int n,v[101][101],Mare=1000001;
//------------------------------------------
//Functii
void citire();
void royfloyd();
void afisare();
//------------------------------------------
int main()
{
	citire();
	royfloyd();
	afisare();
	return 0;
}
//------------------------------------------
void citire()
{
	f >> n;
	for(int i = 1; i <= n; ++i)
	{
		for(int j = 1; j <= n; ++j)
		{
			f >> v[i][j];
			if(v[i][j] == 0)
				v[i][j] = Mare;
		}
		v[i][i] = 0;
	}
}
//------------------------------------------
void royfloyd()
{
	for(int k = 1; k <= n; ++k)
		for(int i = 1; i <= n; ++i)
			for(int j = 1; j <= n; ++j)
				if(v[i][k] + v[k][j] < v[i][j])
					v[i][j] = v[i][k] + v[k][j];
}
//------------------------------------------
void afisare()
{
	for(int i = 1; i <= n; ++i)
	{
		for(int j = 1; j <= n; ++j)
		{
			if(v[i][j] == Mare)
				v[i][j] = 0;
			g << v[i][j] << " ";
		}
		g << '\n';
	}
}