Pagini recente » Cod sursa (job #290700) | Cod sursa (job #1582931) | Cod sursa (job #1196166) | Cod sursa (job #1864779) | Cod sursa (job #1453130)
#include <stdio.h>
#define MAX 105
#define INF 1<<20
void rf(int v[][MAX], int n);
int main(){
freopen("royfloyd.in", "r", stdin);
freopen("royfloyd.out", "w", stdout);
int n, i, j, a[MAX][MAX];
scanf("%d", &n);
for(i = 1; i <= n; i++)
for(j = 1; j <= n; j++){
scanf("%d", &a[i][j]);
if(a[i][j] == 0)
a[i][j] = INF;
}
rf(a, n);
for(i = 1; i <= n; i++){
for(j = 1; j <= n; j++)
printf("%d ", i == j || a[i][j] == INF ? 0 : a[i][j]);
printf("\n");
}
return 0;
}
void rf(int v[][MAX], int n){
int i, j, k;
for(k = 1; k <= n; k++)
for(i = 1; i <= n; i++)
for(j = 1; j <= n; j++)
if(v[i][j] > v[i][k] + v[k][j])
v[i][j] = v[i][k] + v[k][j];
}