Pagini recente » Cod sursa (job #2929629) | Cod sursa (job #1261848) | Cod sursa (job #3173467) | Cod sursa (job #2406058) | Cod sursa (job #145831)
Cod sursa(job #145831)
#include <stdio.h>
#include <values.h>
#define NMax 128
int n, d[NMax][NMax], dmin[NMax][NMax], s[NMax][NMax];
void citire();
void rf();
void afis();
int main()
{
citire();
rf();
afis();
return 0;
}
void rf()
{
int i, j, k;
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
dmin[i][j] = d[i][j] == 0? MAXINT/2: d[i][j];
for (k=1; k<=n; k++)
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
if ( dmin[i][k] != MAXINT/2 && dmin[k][j] != MAXINT/2 && dmin[i][k]+dmin[k][j] < dmin[i][j] )
dmin[i][j] = dmin[i][k] + dmin[k][j];
}
void afis()
{
int i, j;
for (i=1; i<=n; i++)
{
for (j=1; j<n; j++)
printf( "%d ", d[i][j] == 0? 0: dmin[i][j] );
printf( "%d\n", d[i][j] == 0? 0: dmin[i][j] );
}
// for (i=1; i<=n; i++)
// {
// for (j=1; j<n; j++)
// printf( "%d ", s[i][j] );
// printf( "%d\n", s[i][j] );
// }
}
void citire()
{
int i, j;
freopen( "royfloyd.in", "rt", stdin );
freopen( "royfloyd.out", "wt", stdout );
scanf( "%d", &n );
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
scanf( "%d", &d[i][j] );
}