Pagini recente » Cod sursa (job #453178) | Cod sursa (job #3180053) | Cod sursa (job #2572231) | Cod sursa (job #2448165) | Cod sursa (job #2642023)
#include <stdio.h>
#define NMAX 105
using namespace std;
FILE *fin = fopen("royfloyd.in", "r");
FILE *fout = fopen("royfloyd.out", "w");
int n,k,i,j,graf[NMAX][NMAX],cost[NMAX][NMAX];
int main()
{
fscanf(fin, "%d", &n);
for(i=1; i<=n; ++i)
for(j=1; j<=n; ++j)
{
fscanf(fin, "%d", &graf[i][j]);
if(graf[i][j])
cost[i][j] = graf[i][j];
else
cost[i][j] = 1e9;
}
for(k=1; k<=n; ++k)
for(i=1; i<=n; ++i)
for(j=1; j<=n; ++j)
if(i != j and cost[i][k] < 1e9 and cost[k][j] < 1e9 and cost[i][k]+cost[k][j] < cost[i][j])
cost[i][j] = cost[i][k] + cost[k][j];
for(i=1; i<=n; ++i)
{
for(j=1; j<=n; ++j)
if(cost[i][j] == 1e9)
fprintf(fout, "0 ");
else
fprintf(fout, "%d ", cost[i][j]);
fprintf(fout, "\n");
}
fclose(fin);
fclose(fout);
return 0;
}