Cod sursa(job #1464904)

Utilizator LegionHagiu Stefan Legion Data 25 iulie 2015 22:46:02
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
using namespace std;
int a[101][101];
int main()
{
	ifstream in("royfloyd.in");
	ofstream out("royfloyd.out");
	int i, j, k, n;
	in >> n;
	for (i = 1; i <= n; i++)
	{
		for (j = 1; j <= n; j++)
		{
			in >> a[i][j];
			if (a[i][j] == 0)
			{
				a[i][j] = 1000000000;
			}
		}
	}
	for (k = 1; k <= n; k++)
	{
		for (i = 1; i <= n; i++)
		{
			for (j = 1; j <= n; j++)
			{
				if (a[i][k] + a[k][j] < a[i][j])
				{
					a[i][j] = a[i][k] + a[k][j];
				}
			}
		}
	}
	for (i = 1; i <= n; i++)
	{
		for (j = 1; j <= n; j++)
		{
			if (a[i][j] == 1000000000)
			{
				out << "0 ";
			}
			else
			out << a[i][j] << " ";
		}
		out << "\n";
	}
}