Pagini recente » Cod sursa (job #1950946) | Cod sursa (job #2167054) | Profil StarGold2 | Cod sursa (job #1274444) | Cod sursa (job #1589731)
#include <fstream>
#define NMax 110
#define INF 1000000000
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int nodes, dist[NMax][NMax];
int getMin(int a, int b)
{
if (a < b)
return a;
return b;
}
int main()
{
f >> nodes;
for (int i = 1; i <= nodes; i++) {
for (int j = 1; j <= nodes; j++) {
f >> dist[i][j];
if (!dist[i][j])
dist[i][j] = INF;
}
}
for (int k = 1; k <= nodes; k++) {
for (int i = 1; i <= nodes; i++) {
for (int j = 1; j <= nodes; j++) {
if (i == j)
continue;
dist[i][j] = getMin(dist[i][j], dist[i][k] + dist[k][j]);
}
}
}
for (int i = 1; i <= nodes; i++) {
for (int j = 1; j <= nodes; j++)
if (dist[i][j] != INF)
g << dist[i][j] << " ";
else
g << 0 << "\n";
g << "\n";
}
}