Pagini recente » Cod sursa (job #2257049) | Cod sursa (job #865680) | Cod sursa (job #495425) | Cod sursa (job #1702171) | Cod sursa (job #165634)
Cod sursa(job #165634)
#include <stdio.h>
#define N 150
#define INFI 0x3f3f3f3f
int n;
int v[N][N];
void scan(){
int i,j;
freopen("royfloyd.in","r",stdin);
freopen("royfloyd.out","w",stdout);
scanf("%d",&n);
for (i=0;i<n;++i)
for (j=0;j<n;++j)
scanf("%d",&v[i][j]);
}
void init(){
int i,j;
for (i=0;i<n;++i)
for (j=0;j<n;++j)
if (i!=j && v[i][j]==0)
v[i][j]=INFI;
}
void solve(){
int i,j,k;
for (k=0;k<n;++k)
for (i=0;i<n;++i)
for (j=0;j<n;++j)
if (v[i][j]>v[k][j]+v[i][k])
v[i][j]=v[k][j]+v[i][k];
}
void print(){
int i,j;
for (i=0;i<n;++i){
for (j=0;j<n;++j)
printf("%d ",v[i][j]);
printf("\n");
}
}
void std_close(){
fclose(stdin);
fclose(stdout);
}
int main(){
scan();
init();
solve();
print();
std_close();
return 0;
}