Cod sursa(job #530615)

Utilizator cristi.vlasceanuCristian Vlasceanu cristi.vlasceanu Data 8 februarie 2011 01:01:20
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>
using namespace std;

#define MAX 100000

int main() {
	ifstream f("royfloyd.in");
	ofstream g("royfloyd.out");
	int i, j, k, n;
	f>>n;
	int **A = new int*[n];
	for(i=0; i<n; i++) A[i] = new int[n];

	for(i=0; i<n; i++)
		for (j=0; j<n; j++) {
			f>>A[i][j];
			if (A[i][j] == 0) A[i][j] = MAX;
		}

	for(k=0; k<n; k++)
		for(i=0; i<n; i++)
			for(j=0; j<n; j++)
				if (i != j)
					A[i][j] = min(A[i][j], A[i][k] + A[k][j]);

	for(i=0; i<n; i++) {
		for (j=0; j<n; j++)
			if (i != j)	g<<A[i][j]<<" ";
			else g<<0<<" ";
		g<<"\n";
	}
	return 0;
}