Cod sursa(job #777330)

Utilizator ml.vladareanVladarean Maria ml.vladarean Data 11 august 2012 22:05:04
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include <math.h>
#include <limits.h>
using namespace std;
int n, M[103][103],D[103][103], i, j, k;

void SP( int i, int j , int k )
{
	for(k=0;k<n;++k)
		for(i=0;i<n;++i)
			for(j=0;j<n;++j)
				if(i!=j)
					D[i][j] = min( D[i][j], D[i][k]+D[k][j] );
}

int main()
{
	ifstream fin("royfloyd.in");
	ofstream fout("royfloyd.out");
	fin>>n;
	for(i=0;i<n;++i)
		for(j=0;j<n;++j)
		{
			fin>>M[i][j];
			if(M[i][j]==0)
				D[i][j]=1000000002;
			else
				D[i][j]=M[i][j];
		}
	
	SP(0,0,0);
	
	for(i=0;i<n;++i)
	{
		for(j=0;j<n;++j)
		{
			if(D[i][j]==1000000002)
				fout<<"0"<<" ";
			else
				fout<<D[i][j]<<" ";
		}
		fout<<"\n";
			
	}

	return 0;
}