Cod sursa(job #578529)

Utilizator @LynTirla Alin @Lyn Data 11 aprilie 2011 12:50:38
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<fstream> 
using namespace std; 
int n,m; 
int cost[101][101]; 
ifstream f1("royfloyd.in"); 
ofstream f2("royfloyd.out"); 
void initializare()
{for(int i=1;i<=n;++i)
	for(int d=1;d<=n;++d)
		if((!cost[i][d])&&(i!=d)) cost[i][d]=9999999;
}
void citire() 
{f1>>n; 
{for(int i=1;i<=n;++i) 
	for(int d=1;d<=n;++d) 
		f1>>cost[i][d];
	initializare();
} 
} 
void roy() 
{for(int i=1;i<=n;++i) 
	for(int d=1;d<=n;++d) 
		for(int z=1;z<=n;++z) 
			if((cost[d][z]>cost[d][i]+cost[i][z])&&(cost[i][z])&&(cost[d][i])) 
					cost[d][z]=cost[d][i]+cost[i][z]; 
} 
void afisare() 
{ 
for(int i=1;i<=n;++i) 
	{
	for(int d=1;d<=n;++d) 
		f2<<cost[i][d]<<" "; 
	f2<<'\n'; 
	} 
} 
int main() 
{ 
     
 
citire(); 
roy(); 
afisare(); 
 
 
 
return 0; 
}