Cod sursa(job #2659254)

Utilizator StefanSanStanescu Stefan StefanSan Data 16 octombrie 2020 12:32:26
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include      <iostream>
#include      <fstream>
#include      <algorithm>
#include      <vector>
#include      <queue>
#include      <cmath>

#define MAX  101
#define INF (1 << 30)

using namespace std;

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

int n, a[MAX][MAX];

int main() {
   
	ios::sync_with_stdio(false);
	in.tie(NULL), out.tie(NULL);

	in >> n;

	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= n; j++) {
			in >> a[i][j];
			if (a[i][j] == 0 && (i != j)) a[i][j] = INF;
		}

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

	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) 
			out << a[i][j] << ' ';
		
		out << '\n';
	}

    return 0;

}