Pagini recente » Cod sursa (job #926686) | Cod sursa (job #478320) | Cod sursa (job #110169) | Cod sursa (job #2189733) | Cod sursa (job #3140299)
#include <fstream>
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
static constexpr int NMAX = (int)(1e2 + 1);
int n, d[NMAX][NMAX];
static inline int my_min(int a, int b)
{
return ((a < b) ? a : b);
}
int main()
{
f >> n;
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= n; ++j)
f >> d[i][j];
for (int k = 1; k <= n; ++k)
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= n; ++j)
if (i != j)
if (k != i && k != j)
if (d[i][k] && d[k][j])
{
if (!d[i][j])
d[i][j] = d[i][k] + d[k][j];
else
d[i][j] = my_min(d[i][j], d[i][k] + d[k][j]);
}
for (int i = 1; i <= n; ++i)
{
for (int j = 1; j <= n; ++j)
{
g << d[i][j];
if (j != n)
g << ' ';
}
g << '\n';
}
return 0;
}