Pagini recente » Monitorul de evaluare | Cod sursa (job #476052) | Cod sursa (job #967526) | Cod sursa (job #2674989) | Cod sursa (job #931421)
Cod sursa(job #931421)
#include<iostream>
#include<cstdio>
#include<cstdlib>
int main() {
freopen("royfloyd.in","r",stdin);
freopen("royfloyd.out","w",stdout);
int n;
scanf("%d", &n);
int i,j,k;
int a[100][100];
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] = 1010;
}
for( k = 1; k <= n; k++)
for( i = 1; i <= n ;i++)
for( j = 1; j<= n; j++)
if(a[i][j] > a[i][k] + a[k][j] && i!=j)
a[i][j] = a[i][k] + a[k][j];
for( i = 1; i <= n; i++)
a[i][i] = 0;
for( i = 1; i <= n; i++) {
for( j = 1 ; j <= n; j++)
printf("%d ", a[i][j]);
printf("\n");
}
return 0;
}