Cod sursa(job #475556)

Utilizator diana_alexandraVasile Diana Alexandra diana_alexandra Data 7 august 2010 13:41:50
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<iostream>
#include<fstream>

using namespace std;
int main()
{
	long n,i,j,k,c[105][105],d[105][105];
	ifstream fin("royfloyd.in");
	ofstream fout("royfloyd.out");
	fin>>n;
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			fin>>c[i][j];
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			if(c[i][j]==0)
				c[i][j]=1000000;
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			d[i][j]=c[i][j];
	for(i=1;i<=n;i++)
		d[i][i]=0;
	for(k=1;k<=n;k++)
		for(i=1;i<=n;i++)
			for(j=1;j<=n;j++)
				if(d[i][j]>d[i][k]+d[k][j])
					d[i][j]=d[i][k]+d[k][j];
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			if(d[i][j]==1000000)
				d[i][j]=0;

	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
			fout<<d[i][j]<<" ";
		fout<<'\n';
	}
	fin.close();
	fout.close();
	return 0;
}