Cod sursa(job #2916141)

Utilizator matwudemagogul matwu Data 28 iulie 2022 11:09:25
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.12 kb
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
#define EFC cin.tie(nullptr)->ios_base::sync_with_stdio(false)
int d1[5] = { 0, -1, 0, 1, 0 };
int d2[5] = { 0, 0, 1, 0, -1 };
const int mod = 666013;
const int INF = 100000000;
int d11[9] = { 0 , -1, -1, 0, 1, 1, 1, 0, -1 };
int d22[9] = { 0, 0, 1, 1, 1, 0, -1, -1, -1 };
int est[3] = { 0, -1, 0 };
int est1[3] = { 0, 0, 1 };
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");


//----------------------------------

ll n, mat[101][101], lm[101][101];
int main() {

	fin >> n;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) {
			fin >> mat[i][j];
            if(mat[i][j] == 0) lm[i][j] = INF;
            else lm[i][j] = mat[i][j];
		}
	}

	for (int k = 1; k <= n; k++) {
		for (int i = 1; i <= n; i++) {
			for (int j = 1; j <= n; j++) {
				lm[i][j] = min(lm[i][j], lm[i][k] + lm[k][j]);
			}
		}
	}

	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) {
            if(i == j) fout << 0 << " ";
            else fout << lm[i][j] << " ";
		}
		fout << '\n';
	}
}