Pagini recente » Cod sursa (job #865354) | Cod sursa (job #1041794) | Cod sursa (job #1109913) | Cod sursa (job #511730) | Cod sursa (job #811621)
Cod sursa(job #811621)
#include<cstdio>
#include<algorithm>
using namespace std;
#define BM 105
#define mare (1<<29)
int n,mf[BM][BM],viz[BM][BM];
int d(int i,int j){
if(viz[i][j])return mf[i][j];
viz[i][j]=1;
int k;
for(k=1;k<=n;++k)if(k!=i&&k!=j)mf[i][j]=min(mf[i][j],d(i,k)+d(k,j));
return mf[i][j];
}
int main () {
int i,j,el;
freopen("royfloyd.in","r",stdin);
freopen("royfloyd.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;++i)for(j=1;j<=n;++j){
scanf("%d",&el);
if(i!=j&&el==0)mf[i][j]=mare;
else mf[i][j]=el;
}
for(i=1;i<=n;++i)for(j=1;j<=n;++j)mf[i][j]=d(i,j);
for(i=1;i<=n;++i){
for(j=1;j<=n;++j){
if(mf[i][j]==mare)printf("0 ");
else printf("%d ",mf[i][j]);
}
printf("\n");
}
return 0;
}