Cod sursa(job #2198421)

Utilizator gaby_oprinoiuOprinoiu Gabriel gaby_oprinoiu Data 24 aprilie 2018 15:05:47
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
const int nMax = 100, infinit = 1000000;

int d[nMax + 5][nMax + 5];

int main() {
	int n, i, j, k;
	f >> n;	
	for(i = 1; i <= n; ++i) {
		for(j = 1; j <= n; ++j) {
			f >> d[i][j];
			if(i != j && d[i][j] == 0) {
				d[i][j] = infinit;
			}
		}
	}
	for(k = 1; k <= n; ++k) {
		for(i = 1; i <= n; ++i) {
			for( j =1; j <= n; ++j) {
				d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
			}
		}
	}
	for(i = 1; i <= n; ++i) {
		for(j = 1; j <= n; ++j) {
			if(d[i][j] == infinit) {
				d[i][j] = 0;
			}
			g << d[i][j] << " ";

		}
		g << endl;
	}
}