Pagini recente » Cod sursa (job #603622) | Cod sursa (job #3192064) | Cod sursa (job #1042166) | Cod sursa (job #2676828) | Cod sursa (job #1378985)
#include <fstream>
const int NMAX = 105;
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int N;
int dist[NMAX][NMAX];
int sol[NMAX][NMAX];
int main()
{
f >> N;
for (int i = 1; i <= N; ++i)
{
for (int j = 1; j <= N; ++j)
{
f >> dist[i][j];
}
}
for (int k = 1; k <= N; ++k)
{
for (int i = 1; i <= N; ++i)
{
if (!dist[i][k])
continue;
for (int j = 1; j <= N; ++j)
{
if (!dist[k][j])
continue;
if (i == j)
continue;
if (dist[i][k] + dist[k][j] < dist[i][j])
dist[i][j] = dist[i][k] + dist[k][j];
}
}
}
for (int i = 1; i <= N; ++i)
{
for (int j = 1; j <= N; ++j)
{
g << dist[i][j] << " ";
}
g << '\n';
}
f.close();
g.close();
return 0;
}