Pagini recente » Cod sursa (job #1898422) | Cod sursa (job #1259099) | Cod sursa (job #2271713) | Cod sursa (job #2455592) | Cod sursa (job #159722)
Cod sursa(job #159722)
#include<stdio.h>
#define Nm 101
#define Inf (1<<20)
#define min(a,b) ((a)<(b)?(a):(b))
int A[Nm][Nm],n;
void read()
{
int i,j;
freopen("royfloyd.in","r",stdin);
scanf("%d",&n);
for(i=0;i<n;++i)
for(j=0;j<n;++j)
{
scanf("%d",&A[i][j]);
if(!A[i][j] && i!=j)
A[i][j]=Inf;
}
}
void solve()
{
int i,j,k;
for(k=0;k<n;++k)
for(i=0;i<n;++i)
for(j=0;j<n;++j)
A[i][j]=min(A[i][j],A[i][k]+A[k][j]);
}
void write()
{
int i,j;
freopen("royfloyd.out","w",stdout);
for(i=0;i<n;++i)
{
for(j=0;j<n-1;++j)
printf("%d ",A[i][j]<Inf?A[i][j]:0);
printf("%d\n",A[i][j]<Inf?A[i][j]:0);
}
}
int main()
{
read();
solve();
write();
return 0;
}