Pagini recente » Cod sursa (job #2015181) | Rating UPB TONCU PAVLOV VISANU (UPBtpv) | Cod sursa (job #394840) | Cod sursa (job #1352940) | Cod sursa (job #786051)
Cod sursa(job #786051)
#include <iostream>
#include <fstream>
#define _MAX_N 101
std::ifstream f("royfloyd.in");
std::ofstream g("royfloyd.out");
int d[_MAX_N][_MAX_N];
int n;
void read_data()
{
f >> n;
for (int i = 0; i < n; i ++) {
for (int j = 0; j < n; j ++) {
f >> d[i][j];
}
}
}
void royfloyd()
{
for (int k = 0; k < n; k ++) {
for (int i = 0; i < n; i ++) {
for (int j = 0; j < n; j ++) {
if (d[i][k] && d[k][j] &&
(d[i][j] > d[i][k] + d[k][j] || (d[i][j] == 0 && i != j))) {
d[i][j] = d[i][k] + d[k][j];
}
}
}
}
}
void print_solution()
{
for (int i = 0; i < n; i ++) {
for (int j = 0; j < n; j ++) {
g << d[i][j] << ' ';
}
g << '\n';
}
}
int main()
{
read_data();
royfloyd();
print_solution();
return 0;
}