Cod sursa(job #472180)

Utilizator ilie.danilaIlie Teodor Danila ilie.danila Data 23 iulie 2010 12:06:59
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>

using namespace std;

int a[101][101], d[101][101];
int n,i,j,k;

int main()
{
	ifstream f("royfloyd.in");
	ofstream g("royfloyd.out");
	
	f >> n;
	
	for (i = 1; i <= n; i++)
	{
		for (j = 1; j <= n; j++)
		{
			f >> a[i][j];
		}
	}
	
	for (k = 1; k <= n; k++)
	{
		for (i = 1; i <= n; i++)
		{
			for (j = 1; j <= n; j++)
			{
				if (a[i][k] != 0 && a[k][j] != 0 && i != j)
				{
					if (a[i][j] == 0 || a[i][j] > a[i][k] + a[k][j])
						a[i][j] = a[i][k] + a[k][j];
				}
			}
		}
	}
	
	for (i = 1; i <= n; i++)
	{
		for (j = 1; j <= n; j++)
		{
			g << a[i][j] << " ";
		}
		g<<"\n";
	}
	
	return 0;
}