Pagini recente » Cod sursa (job #2772106) | Cod sursa (job #192759) | Cod sursa (job #731999) | Cod sursa (job #57096) | Cod sursa (job #1234304)
#include <cstdio>
#define NMAX 100
#define INF 0x3f3f3f3f
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)
if(Shortest_Path[i][j] > Shortest_Path[i][k] + Shortest_Path[k][j])
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;
}