Pagini recente » Cod sursa (job #1087034) | Cod sursa (job #2586219) | Cod sursa (job #581226) | Cod sursa (job #21665) | Cod sursa (job #185086)
Cod sursa(job #185086)
#include <cstdio>
#include <cstring>
const int N = 100;
const int INF = 10000001;
int n;
int rf[N][N];
template <class T> T min ( T a, T b ) { return (a < b) ? a : b; }
int main() {
freopen("royfloyd.in","rt",stdin);
freopen("royfloyd.out","wt",stdout);
scanf("%d",&n);
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
scanf("%d",&rf[i][j]);
for (int k = 0; k < n; k++)
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
if (rf[i][k] && rf[k][j] && (rf[i][j] > rf[i][k] + rf[k][j] || !rf[i][j]) && i != j)
rf[i][j] = rf[i][k] + rf[k][j];
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) printf("%d ",rf[i][j]);
printf("\n");
}
return 0;
}