Cod sursa(job #2781802)

Utilizator Langa_bLanga Radu Langa_b Data 10 octombrie 2021 15:17:10
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
using namespace std;
ifstream cin("royfloyd.in");
ofstream cout("royfloyd.out");
int n, mat[102][102];
int main() {
	cin >> n;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) {
			cin >> mat[i][j];
			if (mat[i][j] == 0 && i != j) {
				mat[i][j] = 1e9;
			}
		}
	}
	for (int k = 1; k <= n; k++) {
		for (int i = 1; i <= n; i++) {
			for (int j = 1; j <= n; j++) {
				if (mat[i][k] != 0 && mat[k][j] != 0 && mat[i][j] > mat[i][k] + mat[k][j]) {
					mat[i][j] = mat[i][k] + mat[k][j];
				}
			}
		}
	}
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) {
			cout << mat[i][j]<<' ';
		}
		cout << '\n';
	}
}