Pagini recente » Cod sursa (job #2819574) | Cod sursa (job #2172409) | Borderou de evaluare (job #2683669) | Cod sursa (job #2166323) | Cod sursa (job #862615)
Cod sursa(job #862615)
#include<cstdio>
#include<algorithm>
using namespace std;
int n,x[100][100];
int main(){
freopen("royfloyd.in","rt",stdin);
freopen("royfloyd.out","wt",stdout);
scanf("%d",&n);
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
scanf("%d", &x[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&&i!=k&&j!=k&&x[i][k]!=0&&x[k][j]!=0)
if(x[i][j]==0)
x[i][j]=x[i][k]+x[k][j];
else
x[i][j]=min(x[i][j],x[i][k]+x[k][j]);
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j)
printf("%d ",x[i][j]);
printf("\n");
}
return 0;
}