Pagini recente » Cod sursa (job #865969) | Cod sursa (job #1981412) | Cod sursa (job #229589) | Cod sursa (job #2768809) | Cod sursa (job #1234303)
#include <cstdio>
#define NMAX 100
#define INF 0x3f3f3f3f
#define min(a,b) a < b ? a:b
int n;
int Shortest_Path[NMAX][NMAX];
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;
}
}
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] = min(Shortest_Path[i][j],Shortest_Path[i][k] + Shortest_Path[k][j]);
}
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;
}