Pagini recente » Cod sursa (job #1035743) | Cod sursa (job #2591298) | Cod sursa (job #2182146) | Cod sursa (job #1831874) | Cod sursa (job #2913487)
#include <bits/stdc++.h>
using namespace std;
#define NMAX 101
#define INF 10000005
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
int adj[NMAX][NMAX];
int best[NMAX][NMAX];
int main()
{
int n;
in >> n;
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= n; ++j)
in >> adj[i][j];
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= n; ++j) {
if (adj[i][j] == 0)
adj[i][j] = INF;
best[i][j] = adj[i][j];
}
for (int k = 1; k <= n; ++k)
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= n; ++j)
best[i][j] = min(best[i][j], best[i][k] + best[k][j]);
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j)
if (adj[i][j] > 0 && i != j)
out << best[i][j] << ' ';
else
out << 0 << ' ';
out << '\n';
}
return 0;
}