Pagini recente » Cod sursa (job #2375909) | Cod sursa (job #2621899) | Cod sursa (job #453572) | Cod sursa (job #3290081) | Cod sursa (job #145255)
Cod sursa(job #145255)
#include <stdio.h>
#include <string.h>
#define NMAX 101
#define INPUT "royfloyd.in"
#define OUTPUT "royfloyd.out"
#define INF (0x3f3f3f3f)
int i,j,n,m,A[NMAX][NMAX],B[NMAX][NMAX],k,a,b;
int main()
{
freopen(INPUT,"r",stdin);
freopen(OUTPUT,"w",stdout);
scanf("%d",&n);
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
scanf("%d",&A[i][j]);
memcpy(B,A,sizeof(A));
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
if (!B[i][j])
B[i][j]=INF;
for (k=1;k<=n;k++)
for (a=1;a<=n;a++)
for (b=1;b<=n;b++)
if (B[a][b]>B[a][k]+B[k][b] && a!=b)
B[a][b]=B[a][k]+B[k][b];
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
if (B[i][j]!=INF)
printf("%d ",B[i][j]);
else printf("0 ");
printf("\n");
}
fclose(stdin);
fclose(stdout);
return 0;
}