Pagini recente » Cod sursa (job #2702457) | Cod sursa (job #199631)
Cod sursa(job #199631)
#include <stdio.h>
#define NMAX 50
#define FIN "royfloyd.in"
#define FOUT "royfloyd.out"
int N;
int A[NMAX][NMAX];
void citire()
{
int i,j;
freopen(FIN,"rt",stdin);
freopen(FOUT,"wt",stdout);
scanf("%d", &N);
for (i=1;i<=N;i++)
for (j=1;j<=N;j++)
scanf("%d", &A[i][j]);
}
void rf()
{
int i,j,k;
for (k=1;k<=N;k++)
for (i=1;i<=N;i++)
for (j=1;j<=N;j++)
if (A[i][k] && A[k][j] && (A[i][j]>A[i][k]+A[k][j] || !A[i][j]) && i!=j)
A[i][j]=A[i][k]+A[k][j];
}
void afisare()
{
int i,j;
for (i=1;i<=N;i++)
{
for (j=1;j<=N;j++)
printf("%d ", A[i][j]);
printf("\n");
}
}
int main()
{
citire();
rf();
afisare();
return 0;
}