Cod sursa(job #330858)

Utilizator xulescuStefu Gabriel xulescu Data 11 iulie 2009 20:03:59
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream.h>
#define INF 1001

int n,v[100][100];

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

int main(){
	init();
	int i,j,k,m;
	for(k=0;k<n;k++)
		for(i=0;i<n;i++)
			for(j=0;j<n;j++){
				m=v[i][k]+v[k][j];
				v[i][j]=v[i][j]<m ? v[i][j]:m;
			}
	ofstream g("royfloyd.out");
	for(i=0;i<n;i++){
		for(j=0;j<n;j++){
			if(v[i][j]==INF) g<<0<<" ";
			else g<<v[i][j]<<" ";
		}
		g<<"\n";
	}
	g.close();
	return 0;
}