Pagini recente » Cod sursa (job #747734) | Cod sursa (job #2387735) | Cod sursa (job #2755206) | Cod sursa (job #183502) | Cod sursa (job #2961117)
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
constexpr int INF = INT_MAX;
int N, i, j, k, adj[105][105];
int dist[105][105];
int main() {
fin >> N;
for (i = 1; i <= N; ++i)
for (j = 1; j <= N; ++j)
fin >> adj[i][j];
for (i = 1; i <= N; ++i)
for (j = 1; j <= N; ++j) {
if (i == j) dist[i][j] = 0;
else if (adj[i][j]) dist[i][j] = adj[i][j];
else dist[i][j] = INF;
}
for (k = 1; k <= N; ++k)
for (i = 1; i <= N; ++i)
for (j = 1; j <= N; ++j)
dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]);
for (i = 1; i <= N; ++i) {
for (j = 1; j <= N; ++j)
fout << dist[i][j] << ' ';
fout << '\n';
}
return 0;
}