Pagini recente » Borderou de evaluare (job #2478889) | Cod sursa (job #1038023) | Cod sursa (job #773215) | Cod sursa (job #2248274) | Cod sursa (job #1700127)
#include <stdio.h>
#define MAX_N 100
#define INFINIT 1000000000
int muchii[1+MAX_N][1+MAX_N];
int best[1+MAX_N][1+MAX_N];
int min(int a, int b) {
if(b < a)
a = b;
return a;
}
int main() {
int n, l, c, k;
FILE *fin = fopen( "royfloyd.in" , "r" );
fscanf(fin, "%d", &n);
for(l = 1; l <= n; l++)
for(c = 1; c <= n; c++) {
fscanf(fin, "%d", &muchii[l][c]);
if(muchii[l][c] == 0 && l != c)
muchii[l][c] = INFINIT;
best[l][c] = muchii[l][c];
}
fclose( fin );
for(k = 1; k <= n; k++)
for(l = 1; l <= n; l++)
for(c = 1; c <= n; c++)
best[l][c] = min(best[l][c], best[l][k] + best[k][c] );
FILE *fout = fopen( "royfloyd.out" , "w" );
for(l = 1; l <= n; l++){
for(c = 1; c <= n; c++)
fprintf(fout, "%d ", best[l][c]);
fprintf(fout, "\n");
}
fclose( fout );
return 0;
}