Pagini recente » Cod sursa (job #2855747) | Cod sursa (job #2706771) | Cod sursa (job #1795358) | Cod sursa (job #1776759) | Cod sursa (job #3327295)
#include <iostream>
#include <fstream>
using namespace std;
int m, c[101][101];
const int MAX = 0x3f3f3f3f;
static void floyd_warshall()
{
int i, j, k;
for (k = 0; k < m; k++)
for (i = 0; i < m; i++)
for (j = 0; j < m; j++)
if (i != j && c[i][j] > c[i][k] + c[k][j])
c[i][j] = c[i][k] + c[k][j];
}
int main()
{
int i, j, x, y, w;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
fin >> m;
for (i = 0; i < m; i++)
for (j = 0; j < m; j++) {
fin >> c[i][j];
if (c[i][j] == 0 && i != j)
c[i][j] = MAX;
}
floyd_warshall();
for (i = 0; i < m; i++) {
for (j = 0; j < m; j++)
if (c[i][j] != MAX)
fout << c[i][j] << ' ';
else
fout << "0 ";
fout << '\n';
}
return 0;
}