Pagini recente » Cod sursa (job #1799879) | Cod sursa (job #1403497) | Cod sursa (job #2208786) | Cod sursa (job #106959) | Cod sursa (job #2240880)
#include <iostream>
#include <stdio.h>
#define NMAX 1024
#define INF 1000000000
using namespace std;
int cost [ NMAX + 1 ] [ NMAX + 1 ] ;
void royfloyd (int n ) {
for (int k = 1 ; k <= n ; k++ )
for (int i = 1 ; i <= n ; i++ )
for (int j = 1 ; j <= n ; j++ )
if ( (cost[i][k] != INF && cost[k][j] != INF) && cost[i][j] > cost[i][k]+cost[k][j] )
cost[i][j] = cost[i][k]+cost[k][j] ;
}
int main() {
FILE *fin, *fout ;
fin = fopen ("royfloyd.in", "r" ) ;
fout = fopen ("royfloyd.out", "w" ) ;
int n, i, j, m ;
fscanf (fin, "%d", &n ) ;
for (i = 1 ; i <= n ; i++ )
for (j = 1 ; j <= n ; j++ ) {
fscanf (fin, "%d", &cost[i][j] ) ;
if (cost[i][j] == 0 )
cost[i][j] = INF ;
}
royfloyd(n) ;
for (i = 1 ; i <= n ; i++ ) {
for (j = 1 ; j <= n ; j++ )
if (cost[i][j] != INF && i!= j )
fprintf (fout, "%d ", cost[i][j] ) ;
else
fprintf (fout, "0 " ) ;
fprintf (fout, "\n" ) ;
}
return 0;
}