Cod sursa(job #2440227)

Utilizator ArkinyStoica Alex Arkiny Data 17 iulie 2019 23:25:25
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include<iostream>
#include<stdio.h>

using namespace std;

int A[110][110];

#define LOCAL_JUDGE 

int main()
{
#ifndef LOCAL_JUDGE
	freopen("royfloyd.in", "r", stdin);
	freopen("royfloyd.out", "w", stdout);
#endif

	int N;

	cin >> N;

	for(int i = 1;i<=N;++i)
		for (int j = 1; j <= N; ++j)
		{
			cin >> A[i][j];
		}

	for (int k = 1; k <= N; k++)
	{
		for (int i = 1; i <= N; ++i)
		{
			for (int j = 1; j <= N; ++j)
			{
				if (A[i][k] + A[k][j] < A[i][j] && (A[i][k] != 0 && A[k][j] != 0) || (A[i][j] == 0 && i!=j))
				{
					A[i][j] = A[i][k] + A[k][j];
				}
			}
		}
	}

	for (int i = 1; i <= N; ++i)
	{
		for (int j = 1; j <= N; ++j)
		{
			cout << A[i][j] << " ";
		}

		cout << "\n";
	}


	return 0;
}