Pagini recente » Cod sursa (job #3145234) | Cod sursa (job #2354272) | Cod sursa (job #1720073) | Cod sursa (job #462572) | Cod sursa (job #2513702)
#include <cstdio>
#include <algorithm>
using namespace std;
const int NMAX = 105;
const int INF = 0x3f3f3f3f;
int a[NMAX][NMAX]; //mat adiacenta
int d[NMAX][NMAX]; //mat distante
int main(){
freopen("royfloyd.in","r",stdin);
freopen("royfloyd.out","w",stdout);
int n;
scanf("%d",&n);
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j){
scanf("%d",&a[i][j]);
if(a[i][j]==0)
d[i][j]=INF;
else
d[i][j]=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(i!=j)
d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j)
if(d[i][j]==INF)
printf("0 ");
else
printf("%d ",d[i][j]);
printf("\n");
}
return 0;
}