Pagini recente » Cod sursa (job #1762491) | Cod sursa (job #1322040) | Cod sursa (job #1749015) | Cod sursa (job #1694884) | Cod sursa (job #2283384)
#include <fstream>
#include <array>
const int MAX_N = 100;
const int INF = 1 << 24;
using Matrix = std::array<std::array<int, MAX_N>, MAX_N>;
int main()
{
std::ifstream fin("royfloyd.in");
int n;
Matrix distances;
fin >> n;
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
{
fin >> distances[i][j];
distances[i][j] = (i != j && distances[i][j] == 0) ? INF : distances[i][j];
}
for(int k = 0; k < n; k++)
for(int i = 0; i < n; i ++)
for(int j = 0; j < n; j++)
distances[i][j] = std::min(distances[i][j], distances[i][k] + distances[k][j]);
std::ofstream fout("royfloyd.out");
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
distances[i][j] = distances[i][j] == INF ? 0 : distances[i][j], fout << distances[i][j] << ' ';
fout << '\n';
}
return 0;
}