Pagini recente » Cod sursa (job #89716) | Cod sursa (job #1064090) | Cod sursa (job #1426063) | Cod sursa (job #2300842) | Cod sursa (job #1451763)
#include <fstream>
#define NMax 110
#define INF 2000000000
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int nodes, edges, distances[NMax][NMax];
int getmin(int a, int b)
{
if (a < b)
return a;
return b;
}
int main()
{
f >> nodes;
int n1, n2;
for (int i = 1; i <= nodes; i++) {
for (int j = 1; j <= nodes; j++) {
f >> distances[i][j];
if (!distances[i][j])
distances[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;
distances[i][j] = getmin(distances[i][j], distances[i][k] + distances[k][j]);
}
}
}
for (int i = 1; i <= nodes; i++)
distances[i][i] = 0;
for (int i = 1; i <= nodes; i++) {
for (int j = 1; j <= nodes; j++)
g << distances[i][j] << " ";
g << "\n";
}
return 0;
}