Cod sursa(job #2508664)

Utilizator radu.vasileRadu Vasile radu.vasile Data 12 decembrie 2019 17:29:21
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream cin("royfloyd.in");
ofstream cout("royfloyd.out");

void FloydWarshall(int n, vector <vector<int>> graph)
{
	vector <vector<int>> dist(n, vector<int>(n));

	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			dist[i][j] = graph[i][j];
		}
	}

	for (int k = 0; k < n; k++)
	{
		for (int i = 0; i < n; i++)
		{
			for (int j = 0; j < n; j++)
			{
				if (dist[i][k] + dist[k][j] < dist[i][j])
				{
					dist[i][j] = dist[i][k] + dist[k][j];
				}
			}
		}
	}

	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			cout << dist[i][j] << " ";
		}
		cout << "\n";
	}

}

int main()
{
	int n, weight;
	cin >> n;
	vector <vector<int>> graph(n, vector<int> (n) );
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n;j++)
		{
			cin >> weight;
			graph[i][j] = weight;
		}
	}

	FloydWarshall(n, graph);

}