Cod sursa(job #1710304)

Utilizator M.AndreiMuntea Andrei Marius M.Andrei Data 28 mai 2016 19:27:35
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
using namespace std;

ifstream f("royfloyd.in");
ofstream q("royfloyd.out");

void RoyFloyd(int mat[102][102], int n);

int main() {
	int n, mat[102][102];
	f >> n;
	for (int i = 0; i < n; i++)
		for (int j = 0; j < n; j++)
			f >> mat[i][j];

	RoyFloyd(mat, n);

	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			q << mat[i][j] << " ";
		}
		q << "\n";
	}

	return 0;
}

void RoyFloyd(int mat[102][102], int n) {
	for (int k = 0; k < n; k++) {
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < n; j++) {
				if (mat[i][k] + mat[k][j] < mat[i][j] && mat[i][k] != 0 && mat[k][j] != 0) mat[i][j] = mat[i][k] + mat[k][j];
			}
		}
	}
}