Cod sursa(job #2208845)

Utilizator AlexDabuDabu Alexandru AlexDabu Data 31 mai 2018 19:51:01
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");

int N;
int dist[101][101];

void Read(void)
{
	fin >> N;
	for (int i = 0; i < N; i++)
	{
		for (int j = 0; j < N; j++)
		{
			fin >> dist[i][j];
		}
	}
}

void Floyd_Warshall(void)
{
	for (int k = 0; k < N; k++)
	{
		for (int i = 0; i < N; i++)
		{
			for (int j = 0; j < N; j++)
			{
				if (dist[i][j] > dist[i][k] + dist[k][j])
				{
					dist[i][j] = dist[i][k] + dist[k][j];
				}
			}
		}
	}
}

void Print(void)
{
	for (int i = 0; i < N; i++)
	{
		for (int j = 0; j < N; j++)
		{
			fout << dist[i][j] << ' ';
		}
		fout << "\n";
	}
}

int main(void)
{
	Read();
	Floyd_Warshall();
	Print();
	return 0;
}