Cod sursa(job #1042587)

Utilizator s4d1ckOrtan Seby s4d1ck Data 27 noiembrie 2013 13:27:31
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
#include <iostream>
#include <climits>

using namespace std;

#define MAX 1001

int main(){
	const char fin[] = "royfloyd.in";
	const char fout[] = "royfloyd.out";
	ifstream f(fin);
	ofstream g(fout);
	
	int n;
	f>>n;
	int a[n][n], i, j, k;
	for (i = 0; i < n; i++)
		for (j = 0; j < n; j++) {
			f>>a[i][j];
			if ( i !=j && a[i][j] == 0 ) a[i][j] = MAX;
		}
	f.close();	
	
	for (j = 0; j < n; j++)
		for (i = 0; i < n; i++)
			for (k = 0; k < n; k++)
				if (a[i][j] + a[j][k] < a[i][k]) a[i][k] = a[i][j] + a[j][k]; 
	
	for (i = 0; i < n; i++){
		for (j = 0; j < n; j++)
			g<<a[i][j]<<" ";
		g<<endl;
	}
	g.close();
	return 0;
}