Cod sursa(job #2929351)

Utilizator DKMKDMatei Filibiu DKMKD Data 25 octombrie 2022 17:46:23
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>
#define N 105
#define INF 0x3f3f3f3f

using namespace std;

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

int g[N][N], n;
void read() {
	fin >> n;
	for (int i = 1; i <= n; ++i)
		for (int j = 1; j <= n; ++j)
			fin >> g[i][j];
}
void RoyFloyd() {
	for (int k = 1; k <= n; ++k)
		for (int i = 1; i <= n; ++i)
			for (int j = 1; j <= n; ++j)
				if(i!=j)
					g[i][j] = min(g[i][j], g[i][k] + g[k][j]);
}
int main() {
	read();
	for (int i = 1; i <= n; ++i)
		for (int j = 1; j <= n; ++j)
			if (!g[i][j])
				g[i][j] = INF;
	RoyFloyd();
	for(int i=1;i<=n;++i,fout<<"\n")
		for (int j = 1; j <= n; ++j) {
			if (i == j)
				fout << 0 << " ";
			else
				fout << g[i][j] << " ";
		}
	return 0;
}