Pagini recente » Cod sursa (job #2650682) | Cod sursa (job #2664758) | Cod sursa (job #1445206) | Cod sursa (job #2602748) | Cod sursa (job #1194356)
#include <iostream>
#include <fstream>
using namespace std;
#define inf (1 << 30)
#define maxN 105
int A[maxN][maxN];
int main() {
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int N;
f >> N;
for(int i = 1; i <= N; ++ i)
for(int j = 1; j <= N; ++ j)
f >> A[i][j];
for(int k = 1; k <= N; ++ k)
for(int i = 1; i <= N; ++ i)
for(int j = 1; j <= N; ++ j) {
if(! A[i][k] || ! A[k][j]) continue;
if(! A[i][j] && i != j) A[i][j] = A[i][k] + A[k][j];
else A[i][j] = min(A[i][j], A[i][k] + A[k][j]);
}
for(int i = 1; i <= N; ++ i) {
for(int j = 1; j <= N; ++ j)
g << A[i][j] << " ";
g << '\n';
}
return 0;
}