Cod sursa(job #2198439)

Utilizator andrei.beleiAndrei Belei andrei.belei Data 24 aprilie 2018 15:20:50
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <stdlib.h>
#include <fstream>

using namespace std;

int main() {
	int n;
	int a[101][101];
	int inf = 100000;
	ifstream f("royfloyd.in");
	f >> n;
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			f >> a[i][j];
			if (a[i][j] == 0)
				a[i][j] = inf;
		}
	}

	for (int k = 0 ; k < n; k++){
		for (int i = 0; i < n; i++){
			for (int j = 0; j < n; j++)
				if (i != j)
					a[i][j] = min (a[i][j], a[i][k] + a[k][j]);
		}
	}

	ofstream g("royfloyd.out");
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			if (a[i][j] == inf)
				g << 0 << " ";
			else g << a[i][j] << " ";
		}
		g << endl;
	}
}