Cod sursa(job #2744435)

Utilizator dream3rDavid Pop dream3r Data 24 aprilie 2021 18:18:36
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <cstring>
#include <queue>
#include <stack>
using namespace std;
ifstream f("royfloyd.in");
ofstream o("royfloyd.out");
const int inf = 0x3f3f3f3f;

int main()
{
	int a[105][105];
	int n;
	f >> n;
	for (size_t i = 0; i < n; i++)
	{
		for (size_t j = 0; j < n; j++)
		{
			f >> a[i][j];
			if (a[i][j] == 0)
			{
				a[i][j] = inf;
			}
		}
	}

	for (size_t k = 0; k < n; k++)
	{
		for (size_t i = 0; i < n; i++)
		{
			for (size_t j = 0; j < n; j++)
			{
				a[i][j] = min(a[i][j], a[i][k] + a[k][j]);
			}
		}
	}

	for (size_t i = 0; i < n; i++)
	{
		for (size_t j = 0; j < n; j++)
		{
			if (a[i][j] != inf && i != j)
			{
				o << a[i][j] << " \n"[j == n - 1];
			}
			else
			{
				o << "0" << " \n"[j == n - 1];
			}
		}
	}

}