Pagini recente » Cod sursa (job #2789622) | Cod sursa (job #939763) | Cod sursa (job #2652022) | Cod sursa (job #468688) | Cod sursa (job #811606)
Cod sursa(job #811606)
#include<cstdio>
#include<algorithm>
using namespace std;
#define BM 105
#define mare (1<<30)
int m[BM][BM],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)mf[i][j]=min(mf[i][j],d(i,k)+d(k,j));
return mf[i][j];
}
int main () {
int i,j;
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",&m[i][j]);
if(i!=j&&m[i][j]==0)mf[i][j]=mare;
else mf[i][j]=m[i][j];
}
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)printf("%d ",mf[i][j]);
printf("\n");
}
return 0;
}