Cod sursa(job #1128412)

Utilizator axnsanCristi Vijdea axnsan Data 27 februarie 2014 16:58:50
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#ifdef __INFOARENA_PROJ
#include "infoarena.h"
#endif

#include <fstream>
#include <algorithm>

#ifdef __INFOARENA_PROJ
namespace royfloyd {
#endif

	unsigned const int maxN = 1000;

	int main()
	{
		std::ifstream in("royfloyd.in");
		std::ofstream out("royfloyd.out");
		unsigned N;
		in >> N;
		unsigned short D[maxN + 1][maxN + 1];

		for (int i = 1; i <= N; ++i)
			for (int j = 1; j <= N; ++j)
				in >> D[i][j];

		for (int k = 1; k <= N; ++k)
			for (int i = 1; i <= N; ++i)
				for (int j = 1; j <= N; ++j)
					if (D[i][k] + D[k][j] < D[i][j])
						D[i][j] = D[i][k] + D[k][j];

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

#ifdef __INFOARENA_PROJ
}
#endif

int D[100][100];
void roy() //cel mai scurt drum intre oricare 2 noduri
{
	
}