Cod sursa(job #411746)

Utilizator georgelRector George georgel Data 5 martie 2010 09:38:29
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<fstream>
#define Max 101

using namespace std;

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

int a[Max][Max],n;
void read()
{
	int i,j;
	fin>>n;
	for(i = 1; i <= n; i++)
		for(j = 1; j <= n; j++)
		fin>>a[i][j];
	
fin.close();
}
void rf()
{
	int i,j,k;
	
		for(i = 1; i <= n; i++)
			for(j = 1; j <= n; j++)
			for(k = 1; k <= n; k++)	
				if((a[i][j] > a[i][k] + a[k][j] || i != j) && a[i][k] != 0 && a[k][j] != 0)
					a[i][j] = a[i][k]+a[k][j];
}
void afis()
{
	int i,j;
		for(i = 1; i <= n; i++)
		{
			for(j = 1; j <= n; j++)
				fout<<a[i][j]<<" ";
			fout<<"\n";
		}
}
int main()
{
	read();
	rf();
	afis();
	
fin.close();
fout.close();

return 0;

}