Pagini recente » Cod sursa (job #2078162) | Cod sursa (job #2704831) | Cod sursa (job #2743134) | Cod sursa (job #2189469) | Cod sursa (job #2859331)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
const int NMAX = 102;
int m[NMAX][NMAX], rf[NMAX][NMAX], N;
int w(int x, int y, int k)
{
if(!k)
return m[x][y];
return min((rf[x][y] ? rf[x][y] : w(x, y, k - 1)),
(rf[x][k] ? rf[x][k] : w(x, k, k - 1)) +
(rf[k][y] ? rf[k][y] : w(k, y, k - 1)));
}
int main()
{
fin>>N;
for(int i = 1; i <= N; i++)
for(int j = 1; j <= N; j++)
fin>>m[i][j];
for(int i = 1; i <= N; i++)
{
for(int j = 1; j <= N; j++)
{
if(i == j) continue;
rf[i][j] = w(i, j, N);
}
}
for(int i = 1; i <= N; i++) {
for(int j = 1; j <= N; j++)
fout << rf[i][j] << " ";
fout<<endl;
}
return 0;
}