Cod sursa(job #535515)

Utilizator EugenStoicaEugen Stoica EugenStoica Data 17 februarie 2011 12:51:04
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<fstream.h>
#include<limits.h>

ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");

int c[101][101],n;

void citire()
{
	int i,j,x;
	fin>>n;
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			fin>>c[i][j];
}

void floyd()
{
	int i,j,k,x;
	for(k=1;k<=n;k++)
		for(i=1;i<=n;i++)
			if(i!=k)
				for(j=1;j<=n;j++)
					if(i!=k)
					{
						x=c[i][k]+c[k][j];
						if(c[i][j]>x)
							c[i][j]=x;
					}
}

int main()
{
	citire();
	floyd();
	int i,j;
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
			fout<<c[i][j]<<" ";
  	fout<<endl;
	}
  return 0;
}