Cod sursa(job #3160471)

Utilizator 21CalaDarius Calaianu 21Cala Data 24 octombrie 2023 10:43:00
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

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

int d[101][101],m[105][105];

int main()
{
	int n;
	fin >> n;
	for (int i = 0; i < n; ++i)
	{
		for (int j = 0; j < n; ++j)
		{
			fin >> m[i][j];
			if (m[i][j] == 0 && i != j)
				m[i][j] = 1e9;
			d[i][j] = m[i][j];
		}
	}
	for (int k = 0; k < n; ++k)
	{
		for (int i = 0; i < n; ++i)
		{
			for (int j = 0; j < n; ++j)
			{
				d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
			}
		}
	}
	for (int i = 0; i < n; ++i)
	{
		for (int j = 0; j < n; ++j)
		{
			if (d[i][j] == 1e9)
				fout << "0 ";
			fout << d[i][j] << " ";
		}
		fout << '\n';
	}
}