Cod sursa(job #3198956)

Utilizator AndreiMLCChesauan Andrei AndreiMLC Data 31 ianuarie 2024 10:34:23
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <climits>

using namespace std;

ifstream f("royfloyd.in");
ofstream g("royfloyd.out");

const int nmax = 105;
int n;
int mat[nmax][nmax];
int ans[nmax][nmax];


int main()
{
	f >> n;
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= n; j++)
		{
			f >> mat[i][j];
		}
	}

	for (int k = 1;k <= n; k++)
	{
		for (int i = 1; i <= n; i++)
		{
			for (int j = 1; j <= n; j++)
			{
				if (mat[i][j] > mat[k][j] + mat[i][k] && i != k && j != k && i != j && mat[i][k] != 0 && mat[k][j] != 0)
				{
					mat[i][j] = mat[k][j] + mat[i][k];
				}
			}
		}
	}

	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= n; j++)
		{
			g << mat[i][j] << ' ';
		}
		g << '\n';
	}
}