Pagini recente » Cod sursa (job #2300507) | Cod sursa (job #213483) | Cod sursa (job #1824524) | Cod sursa (job #1702329) | Cod sursa (job #2817211)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1e3;
int edge[NMAX + 5][NMAX + 5];
int main()
{
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int n;
fin >> n;
for (int i = 0;i < n;i++)
for (int j = 0;j < n;j++)
fin >> edge[i][j];
for (int k = 0;k < n;k++)
for (int i = 0;i < n;i++)
for (int j = 0;j < n;j++)
if (i != j && edge[i][k] && edge[k][j] && (edge[i][j] > edge[i][k] + edge[k][j] || !edge[i][j]))
edge[i][j] = edge[i][k] + edge[k][j];
for (int i = 0;i < n;i++) {
for (int j = 0;j < n;j++)
fout << edge[i][j] << ' ';
fout << '\n';
}
return 0;
}