Pagini recente » Cod sursa (job #621624) | Cod sursa (job #1826132) | Cod sursa (job #1420213) | Cod sursa (job #3211607) | Cod sursa (job #145264)
Cod sursa(job #145264)
#include <cstdio>
const long MAX = 111;
long i,j,k,n;
long A[MAX][MAX];
inline long min(long a, long b) { return a<b ? a : b; }
int main() {
freopen("royfloyd.in", "r", stdin);
scanf("%ld", &n);
for (i=1; i<=n; ++i)
for (j=1; j<=n; ++j)
scanf("%ld", A[i]+j);
fclose(stdin);
for (k=1; k<=n; ++k)
for (i=1; i<=n; ++i)
for (j=1; j<=n; ++j)
if ( i!=j && A[i][k] && A[k][j] ) {
if ( A[i][j] )
A[i][j] = min(A[i][j], A[i][k]+A[k][j]);
else
A[i][j] = A[i][k] + A[k][j];
}
freopen("royfloyd.out", "w", stdout);
for (i=1; i<=n; ++i) {
for (j=1; j<=n; ++j)
printf("%ld ", A[i][j]);
printf("\n");
}
return 0;
}