Pagini recente » Cod sursa (job #601246) | Cod sursa (job #2444336) | Cod sursa (job #1286777) | Cod sursa (job #1502359) | Cod sursa (job #1115133)
#include <iostream>
#include <fstream>
using namespace std;
const int Nmax = 100;
const int INF = 100000000;
int G[Nmax][Nmax];
int main()
{
ifstream f ("royfloyd.in");
ofstream g ("royfloyd.out");
int N;
f >> N;
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
{
f >> G[i][j];
if (i!=j && G[i][j] == 0) G[i][j] = INF;
}
for (int k = 0; k < N; k++)
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
{
if (G[i][j] > G[i][k] + G[k][j])
G[i][j] = G[i][k] + G[k][j];
}
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
{
if (G[i][j] == INF) g << 0;
else g << G[i][j];
if (j < N-1) g << ' ';
else g << endl;
}
return 0;
}