Cod sursa(job #293458)

Utilizator andreirRoti Andrei andreir Data 1 aprilie 2009 20:48:27
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<fstream>
#define max 1001
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int n,v[100][100];
int main()
{
	int i,j,k;
	fin>>n;
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
		{
			fin>>v[i][j];
			if(v[i][j]==0)
				v[i][j]=max;
		}
	for(k=1;k<=n;k++)
		for(i=1;i<=n;i++)
			for(j=1;j<=n;j++)
				if(i!=k && j!=k && i!=j && v[i][k]+v[k][j]<v[i][j])
					v[i][j]=v[i][k]+v[k][j];
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
		{
			if(v[i][j]==max)
				fout<<"0 ";
			else
				fout<<v[i][j]<<" ";
		}
		fout<<"\n";
	}
	return 0; 
}