Cod sursa(job #281154)

Utilizator xulescuStefu Gabriel xulescu Data 13 martie 2009 20:49:57
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream.h>
#define INF 1001

int n,path[101][101];

void FloydWarshall(){
	int i,j,k;
	for(k=1;k<=n;k++)
		for(i=1;i<=n;i++)
			for(j=1;j<=n;j++)
				path[i][j]= path[i][j]<path[i][k]+path[k][j] ? path[i][j] : path[i][k]+path[k][j];
}

int main(){
	int i,j,x;
	ifstream f("royfloyd.in");
	f>>n;
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++){
			f>>x;
			if(!x && i!=j) path[i][j]=INF;
			else path[i][j]=x;
		}
	f.close();

	FloydWarshall();

	ofstream g("royfloyd.out");
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++)
			g<<path[i][j]<<" ";
		g<<'\n';
	}
}