Pagini recente » Cod sursa (job #166783) | Cod sursa (job #2914175) | Cod sursa (job #1968129) | Cod sursa (job #1031925) | Cod sursa (job #2283369)
#include <fstream>
#include <array>
const int MAX_N = 100;
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];
for(int k = 0; k < n; k++)
for(int i = 0; i < n; i ++)
for(int j = 0; j < n; j++)
if(distances[i][k] && distances[j][k] && distances[i][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++)
fout << distances[i][j] << ' ';
fout << '\n';
}
return 0;
}