Pagini recente » Cod sursa (job #2888716) | Cod sursa (job #2507833) | Cod sursa (job #487502) | Cod sursa (job #2552769) | Cod sursa (job #2815803)
#include <bits/stdc++.h>
#include <limits>
using namespace std;
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
int infinit = std::numeric_limits<int>::max();
int matr[101][101];
int main()
{
int N, i, j, k, x;
in >> N;
for (i = 1; i <= N; i++)
{
for (j = 1; j <= N; j++)
{
in >> x;
if (x || i == j)
matr[i][j] = x;
else
matr[i][j] = infinit;
}
}
for (k = 1; k <= N; k++)
{
for (i = 1; i <= N; i++)
{
for (j = 1; j <= N; j++)
{
if(matr[i][j] >= matr[i][k] + matr[k][j])
matr[i][j] = matr[i][k] + matr[k][j];
}
}
}
for (i = 1; i <= N; i++)
{
for (j = 1; j <= N; j++)
{
if(matr[i][j] == infinit)
out << "0 ";
else
out << matr[i][j] << " ";
}
out << '\n';
}
return 0;
}