Pagini recente » Cod sursa (job #802042) | Cod sursa (job #2203516) | Cod sursa (job #829744) | Cod sursa (job #869752) | Cod sursa (job #1234306)
#include <cstdio>
#define NMAX 100
#define INF 0x3f3f3f3f
int n;
int Shortest_Path[NMAX][NMAX];
inline void read(){
freopen("royfloyd.in","r",stdin);
freopen("royfloyd.out","w",stdout);
scanf("%d",&n);
for(register int i=1;i<=n;++i)
for(register int j=1;j<=n;++j){
scanf("%d",&Shortest_Path[i][j]);
if(Shortest_Path[i][j] == 0)
Shortest_Path[i][j] = INF;
}
}
inline void Roy_Floyd(){
for(register int k=1;k<=n;++k)
for(register int i=1;i<=n;++i)
for(register int j=1;j<=n;++j)
if(i!=j && Shortest_Path[i][j] > Shortest_Path[i][k] + Shortest_Path[k][j])
Shortest_Path[i][j] = Shortest_Path[i][k] + Shortest_Path[k][j];
}
inline void write(){
for(register int i=1;i<=n;++i){
for(register int j=1;j<=n;++j){
if(Shortest_Path[i][j] == INF)
Shortest_Path[i][j] = 0;
printf("%d ",Shortest_Path[i][j]);
}
printf("\n");
}
}
int main(){
read();
Roy_Floyd();
write();
return 0;
}