Pagini recente » Cod sursa (job #102035) | Cod sursa (job #1792477) | Cod sursa (job #879604) | Cod sursa (job #683750) | Cod sursa (job #1534756)
#include <fstream>
#define NMax 110
#define INF 2000000000
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)
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<<0<<" ";
else
g<<dist[i][j]<<" ";
}
g<<"\n";
}
return 0;
}